我想将一列与另一列中名称匹配的另一数据框中的值相乘。
df1
0 'NOK' 10
1 'NOK' 20
2 'SEK' 30
3 'USD' 40
df2
0 'NOK' 2
1 'SEK' 1
2 'USD' 7
我希望将df1
扩展到
df1
0 'NOK' 20
1 'NOK' 40
2 'SEK' 30
3 'USD' 280
我的数据框包含许多货币,因此需要寻找通用的解决方案。
我像这样对每个名称进行硬编码,但是我想要一个通用代码。
df1['test']=0
df1.loc[df1[1]=='NOK','test']=df1[1][df1[1]=='NOK']*df2[df2[1]=='NOK]
答案 0 :(得分:0)
您可以使用set_index
和mul
:
(df1.set_index([1])[2]
.mul(df2.set_index([1])[2])
.reset_index()
)
输出:
1 2
0 'NOK' 20
1 'NOK' 40
2 'SEK' 30
3 'USD' 280