在Python中乘以数据框(相同索引)

时间:2020-08-10 08:58:54

标签: python pandas

我正尝试将2个数据帧相乘(如下)

df1

enter image description here

df2

enter image description here

并且我期望这样的结果:

enter image description here

我找到了一种使用numpy进行操作的方法,但是我丢失了索引和列值。

谢谢您的帮助。

2 个答案:

答案 0 :(得分:1)

您可以直接将数据框列元素明智地相乘:

for i in df1.columns:
   df1[i] *= df2['Weights']

它将保留df1的索引和列名称,并根据需要分配适当的值。

此外,您可以用相同的方式创建新的数据帧(df3),以保留原始df1以便以后再使用。

for i in df1.columns:
    df3[i] = df1[i]*df2['Weights']

答案 1 :(得分:0)

您应该使用mul并将轴设置为“行”:

df1 = pd.DataFrame({"0": [1,2,3], "1": [2,4,6], "2": [3,6,9]})
df2 = pd.DataFrame({"weights": [.1,.2,.3]})

df1.mul(df2.weights, axis="rows")