python - 如何根据字典键和值过滤 Pandas 数据框行?

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

df:

Customer_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']
 }

我需要以下数据框:

Customer_ID 类别 类型 交货日> 40275 书本 购买 正确 40275 软件 卖出 错误 39900 书本 购买 正确 35886 软件 卖出 错误 40350 软件 卖出 正确 28129 软件 购买 错误 表>

最佳答案

展开字典并创建一个新的数据框,然后将内部merge df 与新的数据框

df.merge(pd.DataFrame([{'Customer_ID': k, 'Category': i} 
                       for k, v in d.items() for i in v]))

   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

https://stackoverflow.com/questions/69961068/

相关文章:

haskell - 如何使用 `zipTree` 实现 `foldTree` ?

awk - 使用 grep 或 awk 查找 txt 和 csv 文件之间的匹配行

intellij-idea - 如何将项目从 IDEA 连接到 Gitlab

python - 遍历列表并从头开始重新启动

flutter - 无法将类型为 'String' 的值分配给 flutter Getx 中类型为

javascript - 如何在 react-native 中结合使用 Drawer Navigat

perl - 从包含日期的文件中排序并提取一定数量的行

typescript - @typescript-eslint/naming-convention

javascript - 如何使用 "onclick"方法获取数据属性?

javascript - 带有 Material-UI 的 SSR 上的@emotion/cache