【问题标题】:Need to compare two columns from two dataframes in pandas需要比较 pandas 中两个数据框的两列
【发布时间】:2021-05-11 12:22:41
【问题描述】:

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

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

提前致谢

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    Series.map与第二个DataFrame和Series.mul的倍数一起使用(如果样本数据中没有像USD这样的匹配值,则fill_value用于1的倍数,因此创建缺失值):

    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
    

    【讨论】:

    • 在转换发生后我也将货币价值替换为美元
    • @VigneshR - 答案已编辑,添加dataframe1['Currency'] = 'USD'
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-17
    相关资源
    最近更新 更多