为了账号安全,请及时绑定邮箱和手机立即绑定

pandas 在多个数据帧列上执行算术运算的最有效方法

pandas 在多个数据帧列上执行算术运算的最有效方法

喵喔喔 2023-06-27 14:13:37
我在 jupyter 笔记本上运行 python 3.8.5 和 pandas 1.1.0。我想将多个列除以同一数据帧的另一列中的相应元素。例如:import pandas as pddf = pd.DataFrame({'a': [2, 3, 4], 'b': [4, 6, 8], 'c':[6, 9, 12]})df    a   b   c0   2   4   61   3   6   92   4   8   12我想将列“b”和“c”除以“a”中的相应值,并用该除法的结果替换“b”和“c”中的值。所以上面的数据框变成:    a   b   c0   2   2   31   3   2   32   4   2   3我试过df.iloc[: , 1:] = df.iloc[: , 1:] / df['a']但这给出了:    a   b   c0   2   NaN NaN1   3   NaN NaN2   4   NaN NaN我通过执行以下操作使其工作:for colname in df.columns[1:]:    df[colname] = (df[colname] / df['a'])是否有通过避免 for 循环来更快地完成上述操作的方法?
查看完整描述

2 回答

?
开满天机

TA贡献1786条经验 获得超13个赞

差不多就这样,将div与 一起使用axis=0

df.iloc[:,1:] = df.iloc[:,1:].div(df.a, axis=0)


查看完整回答
反对 回复 2023-06-27
?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

df.b= df.b/df.a
df.c=df.c/df.a

或者

df[['b','c']]=df.apply(lambda x: x[['b','c']]/x.a ,axis=1)


查看完整回答
反对 回复 2023-06-27
  • 2 回答
  • 0 关注
  • 143 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号