You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于字典的键和值筛选pandas DataFrame的行?

Python根据字典筛选DataFrame实现方案

核心逻辑是匹配每行Customer_ID对应的字典值列表中是否包含当前行的Category字段,两种常用实现方式如下:

方法1:简洁易读的逐行校验(适合中小数据集)

import pandas as pd

# 你的筛选规则字典
d = {
 40275: ['Book','Software'],
 39900: ['Book'],
 35886: ['Software'],
 40350: ['Software'],
 28129: ['Software']
 }

# 逐行校验生成过滤掩码
filter_mask = df.apply(lambda row: row['Category'] in d.get(row['Customer_ID'], []), axis=1)
# 取符合条件的行得到结果
result_df = df[filter_mask]

方法2:向量化匹配(适合百万级以上大数据集,性能更高)

# 把字典规则展开为 (Customer_ID, Category)的有效匹配对列表
valid_match_pairs = [(customer_id, category) for customer_id, category_list in d.items() for category in category_list]
# 生成多列匹配掩码
filter_mask = df[['Customer_ID', 'Category']].apply(tuple, axis=1).isin(valid_match_pairs)
result_df = df[filter_mask]

两种方法执行后得到的result_df就是你需要的目标结果。

内容的提问来源于stack exchange,提问作者V.Nouri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 00:45:04