我需要比较两个数据帧之间的第一列值,并通过将该值与第二个数据帧的第二列相乘来更改第二列的值
数据框 1
Money Currency
34 USD
31 EUR
20 JPY
数据框2
Curr Value
EUR 1.21
JPY 0.78
我的预期输出
Money Currency
34 USD
37.51(31*1.21) USD
15.6(20*0.78) USD
提前致谢
答案 0 :(得分:1)
将 Series.map
与第二个 DataFrame 和多个 Series.mul
一起使用(如果示例数据中没有像 fill_value
这样的匹配值,则多个 1
使用 USD
,因此创建了缺失值):
s = dataframe2.set_index('Curr')['Value']
dataframe1['Money'] = dataframe1['Currency'].map(s).mul(dataframe1['Money'], fill_value=1)
dataframe1['Currency'] = 'USD'
print (dataframe1)
Money Currency
0 34.00 USD
1 37.51 USD
2 15.60 USD
详细信息:
print (dataframe1['Currency'].map(s))
0 NaN
1 1.21
2 0.78
Name: Currency, dtype: float64