Pandas/Python 列乘以行
Pandas/Python multiply columns by row
抱歉,这是一个简单的问题。
我有两个数据框,每个数据框都有相同的列。我需要将第二个数据框中的每一行乘以第一行中的唯一行。
最终会有更多不同年龄的列,所以我不想只乘以一个标量。
我已经使用了 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
您可以使用 mul
by first row of df1
selected by 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
抱歉,这是一个简单的问题。
我有两个数据框,每个数据框都有相同的列。我需要将第二个数据框中的每一行乘以第一行中的唯一行。
最终会有更多不同年龄的列,所以我不想只乘以一个标量。
我已经使用了 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
您可以使用 mul
by first row of df1
selected by 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