如何根据字典键和值过滤pandas数据帧行?

V.N*_*uri 2 python dictionary dataframe pandas

我有一个 Python 数据框和一个字典,如下所示,我需要根据字典过滤数据框。如您所见,字典的键和值是数据帧的两列。我想要一个数据帧的子集,其中包含字典的键和值以及其他列。

df:

客户ID 类别 类型 送货
40275 真的
40275 软件 错误的
40275 电子游戏 错误的
40275 手机 错误的
39900 光盘/DVD 真的
39900 真的
39900 软件 真的
35886 手机 错误的
35886 电子游戏 错误的
35886 光盘/DVD 错误的
35886 软件 错误的
40350 软件 真的
28129 软件 错误的

字典是:

d = {
 40275: ['Book','Software'],
 39900: ['Book'],
 35886: ['Software'],
 40350: ['Software'],
 28129: ['Software']
 }
Run Code Online (Sandbox Code Playgroud)

我需要以下数据框:

客户ID 类别 类型 送货
40275 真的
40275 软件 错误的
39900 真的
35886 软件 错误的
40350 软件 真的
28129 软件 错误的

Shu*_*rma 6

展平字典并创建一个新的数据框,然后merge df使用新的数据框进行内部处理

df.merge(pd.DataFrame([{'Customer_ID': k, 'Category': i} 
                       for k, v in d.items() for i in v]))
Run Code Online (Sandbox Code Playgroud)
   Customer_ID  Category  Type  Delivery
0        40275      Book   Buy      True
1        40275  Software  Sell     False
2        39900      Book   Buy      True
3        35886  Software  Sell     False
4        40350  Software  Sell      True
5        28129  Software   Buy     False
Run Code Online (Sandbox Code Playgroud)