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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 04:05:21