Pandas / Python逐行乘法

时间:2016-07-21 12:15:10

标签: python pandas dataframe multiplication

如果这是一个简单的问题,请道歉。

我有两个数据帧,每个数据帧都有相同的列。我需要将第二个数据帧中的每一行乘以第一个数据帧中的唯一行。

最终会有更多不同年龄的列,所以我不想只是乘以标量。

我使用了df.multiply()并继续为所有值获取NaN,大概是因为两个df的长度不匹配。

有没有办法将一个数据帧中的每一行乘以另一个数据帧中的单个行?

age   51200000.0  70000000.0
SFH
0        0.75        0.25

age             51200000.0    70000000.0
Lambda                                 
91.0       0.000000e+00  0.000000e+00
94.0       0.000000e+00  0.000000e+00
96.0       0.000000e+00  0.000000e+00
98.0       0.000000e+00  0.000000e+00
100.0      0.000000e+00  0.000000e+00
102.0      0.000000e+00  0.000000e+00
...        ...           ...
1600000.0  1.127428e+22  8.677663e+21

1 个答案:

答案 0 :(得分:0)

您可以在mul选择的df1的第一行使用iloc

print (df2.mul(df1.iloc[0]))

样品:

print (df1)
      51200000.0  70000000.0
age                        
0          0.75        0.25

print (df2)
      51200000.0  70000000.0
age                         
91.0         1.0         2.0
94.0         5.0        10.0
96.0         0.0         0.0

print (df2.mul(df1.iloc[0]))
      51200000.0  70000000.0
age                         
91.0        0.75         0.5
94.0        3.75         2.5
96.0        0.00         0.0