如何在熊猫中将多列乘以一列

我想要:

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 ...

等等。

我错过了什么?

谢谢!

70142 次浏览

使用 multiply方法并设定 axis="index":

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

另一种写 HYRY 答案的方式:

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

使用 to_numpy将这两个因子转换为 麻木不仁阵列:

df.loc[:, ['D', 'E']] = df[['A', 'B']].to_numpy() * df[['C']].to_numpy()