数据帧a:
id value
-------------------------------
0 231 9243
1 392 81139
2 493 896546
3 879 31
数据帧b:
id description colour
-------------------------------
0 231 football brown
1 392 bat white
2 556 chicken yellow
3 493 tennis ball yellow
4 119 pig pink
5 879 cricket ball red
我的问题是,如何在数据帧a中创建一个新列,根据与数据帧a的id列值的匹配来输入数据帧b的描述?所以我最终得到了:
id description value
-------------------------------
0 231 football 9243
1 392 bat 81139
2 493 tennis ball 896546
3 879 cricket ball 31
您可以创建一个dict,用于从数据帧b
映射id
和description
,然后在id
列的数据帧a
上使用.map()
,如下所示:
b_dict = dict(zip(b['id'], b['description']))
a['description'] = a['id'].map(b_dict).fillna('')
结果:
print(a)
id value description
0 231 9243 football
1 392 81139 bat
2 493 896546 tennis ball
3 879 31 cricket ball
通过left merge
df1 = df1.merge(df2[['id','description']], on='id', how='left')
输出
id value description
0 231 9243 football
1 392 81139 bat
2 493 896546 tennis_ball
3 879 31 cricket_ball