【发布时间】:2021-09-09 22:42:00
【问题描述】:
我对使用 DataFrames 很陌生,所以请多多包涵。所以我有两个不同大小的数据框,如下所示:
df1 =
name var1 var2 var3
0 0001 1.08 0.89 1.98
1 0002 2.11 0.19 1.64
2 0003 1.45 1.22 1.21
3 0004 1.32 1.34 2.01
df2 =
name var1 var2 var3
0 0002 10 25 12
1 0001 21 31 12
2 0002 25 14 24
3 0004 13 21 11
4 0003 24 55 41
5 0004 26 14 61
6 0001 16 19 36
7 0003 20 18 44
我要做的是比较第一列以匹配名称并将相应行的 var1、var2 和 var3 的列相互相乘,因此它会产生与 df2 长度相同的数据帧:
df3 =
name var1 var2 var3
0 0002 2.11*10 0.19*25 1.64*12
1 0001 1.08*21 0.89*31 1.98*12
2 0002 . . .
3 0004 . . .
4 0003 . . .
5 0004 . . .
6 0001 . . .
7 0003 . . .
我尝试像这样比较第一列:
variables = ['var1', 'var2', 'var3']
for var in variables:
if (df1['name'] == df2['name']:
print(df1[var] * df2[var])
但这给了我一个
ValueError: 只能比较标签相同的 Series 对象
有什么方法可以得到我想要的结果吗?
【问题讨论】: