需要比较熊猫中两个数据帧的两列

时间:2021-05-10 12:31:34

标签: python pandas dataframe

我需要比较两个数据帧之间的第一列值,并通过将该值与第二个数据帧的第二列相乘来更改第二列的值

数据框 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

提前致谢

1 个答案:

答案 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