如何参考 python 熊猫中的其他数据框创建新列



>输入:

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 中存在的总线 ID

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

预期输出:

BusId   Fair    Increased Fair
abc1    5           7
abc2    6           9
abc3    7           12

您可以将map与字典查找一起使用

m = dict(df2.values)
df1.assign(**{'Increased Fair': df1.BusId.map(m) + df1['Fair Increase']})
BusId  Fair Increase  Increased Fair
0  abc1              2               7
1  abc2              3               9
2  abc3              5              12

您可以使用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 Fair
BusId                      
abc1      5               7
abc2      6               9
abc3      7              12

最新更新