如何在Pandas中将列乘以多列

时间:2014-03-28 01:56:24

标签: python pandas

我想:

df[['income_1', 'income_2']] * df['mtaz_proportion']

返回那些列乘以df['mtaz_proportion']

这样我就可以设置

df[['mtaz_income_1', 'mtaz_income_2']] = 
df[['income_1', 'income_2']] * df['mtaz_proportion']

但我得到了:

income_1    income_2    0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  15  16  17  
0   NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ...
1   NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ...
2   NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ...

等...

我错过了什么简单的事情?

谢谢!

2 个答案:

答案 0 :(得分:52)

使用multiply方法并设置axis="index"

df[["A", "B"]].multiply(df["C"], axis="index")

答案 1 :(得分:0)

写HYRY答案的另一种方法:

df.loc[:,['A', 'B']] = df.loc[:,['A', 'B']].multiply(df.loc[:, 'C'], axis="index")