将数据框中的所有值与另一个名称相同的数据框中的数字相乘

时间:2019-06-26 14:52:34

标签: python dataframe pandas-groupby

我想将一列与另一列中名称匹配的另一数据框中的值相乘。

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]

1 个答案:

答案 0 :(得分:0)

您可以使用set_indexmul

(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