本文将介绍如何使用python的科学计算库pandas对dataframe的特定列或行进行运算,适用于windows 7系统,使用anaconda3-4.3.0.1和pycharm-community-2016.3.2编辑器,以及pandas版本0.19.2。
场景描述

假设我们有一个名为df_1的DataFrame,其列索引为[“value1”, “value2”, “value3”, “value4”],行索引为0到7。我们需要执行以下操作:
列操作:
立即学习“Python免费学习笔记(深入)”;
对”value1″和”value2″列的每个数进行平方。对”value1″和”value2″列的每个数加2。
行操作:
对1和2行的每个数进行平方。对1和2行的每个数减3。
df_1的初始状态如下:

操作后的结果如下:
列操作:
立即学习“Python免费学习笔记(深入)”;

行操作:

代码

以下是实现上述操作的Python代码:
import pandas as pdimport numpy as npdict_1 = {"value1": [10, 20, 30, 40, 50, 60, 70, 80],"value2": [100, 200, 300, 400, 500, 600, 700, 800],"value3": [50, 20, 30, 90, 50, 60, 80, 80],"value4": [10, 30, 90, 40, 60, 60, 70, 80]}
df_1 = pd.DataFrame(dict_1, columns=["value1", "value2", "value3", "value4"])print("n", "df_1", "n", df_1, "n")print(type(df_1))
对某些列进行计算
df_2 = df_1.apply(lambda x: np.square(x) if x.name in ['value1', 'value2'] else x)print("n", "df_2-列平方", "n", df_2, "n")
df_2 = df_1.apply(lambda x: x+2 if x.name in ['value1', 'value2'] else x)print("n", "df_2-列+2", "n", df_2, "n")
对某些行进行计算
df_3 = df_1.apply(lambda x: np.square(x) if x.name in [1, 2] else x, axis=1)print("n", "df_3-行平方", "n", df_3, "n")
df_3 = df_1.apply(lambda x: x-3 if x.name in [1, 2] else x, axis=1)print("n", "df_3-行-3", "n", df_3, "n")
代码截图:

部分代码解读

列操作和行操作的区别在于
axis
参数的使用。默认情况下,
axis=0
表示对列进行操作,而
axis=1
表示对行进行操作。
例如,
df_2 = df_1.apply(lambda x: np.square(x) if x.name in ['value1', 'value2'] else x)
使用了
apply
方法和
lambda
函数。这行代码的作用是对列名为
['value1', 'value2']
的每个元素进行平方运算,其余列保持不变。
apply
函数可以看作是内置的循环操作,简化了代码的书写,无需手动编写循环。
以上就是Python-科学计算-pandas-17-对某些列或行运算的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/166544.html
微信扫一扫
支付宝扫一扫