如何在Python中使用另一个数据框引用pandas数据帧?

K. *_* K. 4 python dataframe pandas

我有在Python 2个dataframes - df_itemdf_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
Run Code Online (Sandbox Code Playgroud)

排的item_iddf_item充当每行的主键.我如何引用df_itemdf_bill的,这样的方式item_iddf_bill被转换成item_name

预期产出:

df_bill:

bill_no  item_name
201      Vegetables
202      Noodles
203      Dairy Products
204      Vegetables
205      Ice Cream
Run Code Online (Sandbox Code Playgroud)

jez*_*ael 5

使用mapSeries,但首先删除列item_iddroppop:

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)
Run Code Online (Sandbox Code Playgroud)

要么:

s = df_bill.pop('item_id').map(df_item.set_index('item_id')['item_name'])
df = df_bill.assign(item_name = s)
Run Code Online (Sandbox Code Playgroud)
print (df)
   bill_no       item_name
0      201      Vegetables
1      202         Noodles
2      203  Dairy Products
3      204      Vegetables
4      205       Ice Cream
Run Code Online (Sandbox Code Playgroud)