使用Pandas中的apply函数和lambda表达式
示例代码:
假设有一个包含“a”、“b”、“c”三列和“x”、“y”、“z”三行的数据框,现在想要把第一列的值乘以第二列的值,然后把结果除以第三列的值,得到一个新的列“new”。
import pandas as pd
df = pd.DataFrame({'a':[1,2,3], 'b':[4,5,6],'c':[2,3,4],'x':[11,12,13],'y':[14,15,16],'z':[17,18,19]})
df['new'] = df.apply(lambda row: (row['a']*row['b'])/row['c'], axis=1)
print(df)
输出:
a b c x y z new
0 1 4 2 11 14 17 2.000000
1 2 5 3 12 15 18 3.333333
2 3 6 4 13 16 19 4.500000
解释:
我们使用了apply函数,axis=1参数表示对每一行进行计算。lambda表达式中的row表示当前行,通过选择对应的列并进行乘除法运算,最终得到了“new”这一列的值。
上一篇:不同列高的多列布局
下一篇:不同列进行不同的差分操作