dataframe a:
id value
-------------------------------
0 231 9243
1 392 81139
2 493 896546
3 879 31
dataframe 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
My question is how can I create a new column in dataframe a that inputs the description from dataframe b based on matching to the id column values in dataframe a? So I end up with:
id description value
-------------------------------
0 231 football 9243
1 392 bat 81139
2 493 tennis ball 896546
3 879 cricket ball 31
You can create a dict for mapping id
and description
from dataframe b
and then use .map()
on dataframe a
on id
columns, as follows:
b_dict = dict(zip(b['id'], b['description']))
a['description'] = a['id'].map(b_dict).fillna('')
Result:
print(a)
id value description
0 231 9243 football
1 392 81139 bat
2 493 896546 tennis ball
3 879 31 cricket ball