Python实现DataFrame中匹配3个及以上数字并返回对应ID
Python实现Excel多数字匹配筛选并导出ID
依赖安装
先安装所需的Python库:
pip install pandas openpyxl
核心代码
import pandas as pd # 设定需要匹配的目标数字集合 target_nums = {2, 4, 6, 8, 9, 10} # 读取Excel文件,替换为你的实际文件名和工作表名 df_records = pd.read_excel('你的数据源文件.xlsx', sheet_name='待匹配记录表') # 定义匹配计数函数,需根据实际数字列格式调整 def calc_match_count(row): # 假设数字列是逗号分隔的字符串(如"2,4,6,8"),如果是多列存储需修改逻辑 record_nums = set(map(int, str(row['数字列']).split(','))) # 计算两个集合的交集长度,即匹配数字数量 return len(record_nums & target_nums) # 给每条记录计算匹配数 df_records['匹配数'] = df_records.apply(calc_match_count, axis=1) # 筛选匹配数≥3的记录,仅保留ID列 qualified_ids = df_records[df_records['匹配数'] >= 3]['ID'] # 将结果导出到新Excel文件 qualified_ids.to_excel('符合条件的ID.xlsx', sheet_name='结果', index=False) print("筛选完成,结果已导出")
关键说明
- 适配数据格式:如果数字不是逗号分隔的字符串(比如每个数字单独占一列),需要修改
calc_match_count函数,例如遍历所有数字列判断是否在target_nums中并计数 - 参数替换:务必把代码中的文件名、工作表名、列名替换为你的实际数据对应名称
- 异常处理:若数据存在空值、非数字内容,可添加
try-except块避免运行报错
内容的提问来源于stack exchange,提问作者user20250014
相关产品推荐
相关产品推荐

