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

使用Pandas匹配TXT名单 为Excel对应参与者标记参与状态

核心逻辑实现代码及说明

完整可运行代码

import pandas as pd

# 读取Excel全量参与者数据
excelList = pd.read_excel("participantsList.xlsx", sheet_name="Table1")

# 读取txt已参与名单,处理为无首尾空白、无空行的集合
with open('participated.txt','r', encoding='utf-8') as f:
    participated_set = {line.strip() for line in f if line.strip()}

# 拼接Excel中的名和姓为完整姓名,匹配已参与名单后赋值Participated列为yes
excelList['full_name'] = excelList['First name'] + ' ' + excelList['Last Name']
excelList.loc[excelList['full_name'].isin(participated_set), 'Participated'] = 'yes'

# 可选:删除临时生成的全名列再导出
excelList = excelList.drop(columns=['full_name'])

# 导出结果文件
excelList.to_excel(r'newList.xlsx', index=False)

关键逻辑说明

  • 用with语句读取txt文件,会自动关闭文件句柄,避免资源泄漏
  • 把已参与名单转成set类型,查询匹配的时间复杂度为O(1),数据量很大时也能保持高效
  • 用pandas的isin方法批量匹配名单,避免手动循环遍历行,代码更简洁执行效率更高
  • 导出时加index=False参数,避免把pandas默认的行索引写入Excel文件

适配不同匹配规则的调整方案

如果txt中存储的仅为参与者的姓氏(和示例中Last Name列完全对应),可以把匹配逻辑修改为:

# 直接匹配Last Name列,无需生成full_name临时列
excelList.loc[excelList['Last Name'].isin(participated_set), 'Participated'] = 'yes'

内容的提问来源于stack exchange,提问作者user10657156

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 02:06:03