【问题标题】:Pandas/Python multiply columns by rowPandas/Python 逐行乘以列
【发布时间】:2016-07-21 12:15:09
【问题描述】:

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

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

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

我使用了 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

【问题讨论】:

  • 所以你是说df.mul(df1, axis=1) 没用?

标签: python pandas dataframe multiplication


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-12
    • 2020-07-01
    • 2018-04-12
    相关资源
    最近更新 更多