我在 Python 中有两个数据帧 - df_item
和 df_bill
如下所示:
df_item:
item_id item_name
2 Noodles
3 Vegetables
4 Dairy Products
5 Ice Cream
df_bill:
bill_no item_id
201 3
202 2
203 4
204 3
205 5
item_id
排序中的 df_item
列充当每一行的主键。如何在 df_item
中引用 df_bill
以将 item_id
中的 df_bill
转换为 item_name
?预期输出:
df_bill:
bill_no item_name
201 Vegetables
202 Noodles
203 Dairy Products
204 Vegetables
205 Ice Cream
最佳答案
通过 map
使用 Series
但首先通过 item_id
或 drop
删除列 pop
:
s = df_bill['item_id'].map(df_item.set_index('item_id')['item_name'])
df = df_bill.drop('item_id', 1).assign(item_name = s)
或者:
s = df_bill.pop('item_id').map(df_item.set_index('item_id')['item_name'])
df = df_bill.assign(item_name = s)
print (df)
bill_no item_name
0 201 Vegetables
1 202 Noodles
2 203 Dairy Products
3 204 Vegetables
4 205 Ice Cream