如何在python pandas中参考其他数据框创建新列

    输入:


df1=pd.DataFrame({

    "BusId":['abc1','abc2','abc3'],

    "Fair Increase":[2,3,5]

})

df2=pd.DataFrame({

    'BusId':['abc1','abc2','abc3','abc4','abc5'],

    "Fair":[5,6,7,8,9]

})

仅需要针对df2上df1中存在的BusId进行计算。


计算 df2 中增加的公平公平 + df1 中的公平增加


预期产量:


BusId   Fair    Increased Fair

abc1    5           7

abc2    6           9

abc3    7           12


慕码人8056858
浏览 147回答 2
2回答

暮色呼如

您可以使用df.merge合并df2和df2,创建新列Increased Fair并删除旧列Fair Increase>>> df3 = df2.merge(df1).set_index('BusId')>>> df3['Increased Fair'] = df3['Fair'] + df3['Fair Increase']>>> del df3['Fair Increase']>>> df3       Fair  Increased FairBusId                      abc1      5               7abc2      6               9abc3      7              12

偶然的你

您可以map与字典查询一起使用m = dict(df2.values)df1.assign(**{'Increased Fair': df1.BusId.map(m) + df1['Fair Increase']})  BusId  Fair Increase  Increased Fair0  abc1              2               71  abc2              3               92  abc3              5              12
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python