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

如何匹配两个CSV文件的作者信息并导出符合条件的行?

用Pandas实现目标需求的具体方案

没问题,这事儿用Pandas就能轻松搞定,我给你一步步拆解并附上完整可运行的代码:

核心思路

我们需要先提取目标作者列表,再逐行检查第二个CSV的作者群里是否包含目标作者,最后导出符合条件的行。具体步骤如下:

  1. 导入Pandas库:这是Python处理CSV文件的标配工具
  2. 读取两个CSV文件:因为都是单列无表头的格式,我们可以自定义列名方便后续操作
  3. 构建快速查找的作者集合:把第一个CSV的作者转成集合,比用列表查找效率高得多
  4. 筛选符合条件的行:拆分第二个CSV每行的作者列表,检查是否和目标作者有交集
  5. 导出结果到新CSV:保持和原文件一致的单列格式

完整代码示例

import pandas as pd

# 读取第一个单列作者CSV,自定义列名方便识别
df_target_authors = pd.read_csv('你的第一个文件名.csv', header=None, names=['author'])
# 将目标作者转为集合,提升查找速度
target_authors_set = set(df_target_authors['author'].tolist())

# 读取第二个CSV,同样自定义列名
df_source = pd.read_csv('你的第二个文件名.csv', header=None, names=['authors_group'])

# 定义筛选函数:检查当前行的作者群是否包含目标作者
def check_target_author(row):
    # 拆分竖线分隔的作者,同时去除可能存在的空格(比如有的行可能有`Aaron Harwood | Rajiv Ranjan`这类格式)
    authors_in_row = [auth.strip() for auth in row['authors_group'].split('|')]
    # 检查两个集合是否有交集,有则返回True
    return bool(set(authors_in_row) & target_authors_set)

# 筛选出符合条件的行
filtered_result = df_source[df_source.apply(check_target_author, axis=1)]

# 导出到新CSV,保持无表头、单列的格式
filtered_result.to_csv('筛选结果.csv', index=False, header=False)

关键细节说明

  • 集合的优势:用set存储目标作者,是因为集合的成员检查(in操作)比列表快几十倍,数据量大的时候这个优势会特别明显
  • 去空格处理:auth.strip()是为了兼容可能存在的格式不规范问题,如果你的数据里没有多余空格,可以去掉这一步
  • 导出格式:index=False和header=False确保导出的CSV和原文件格式完全一致(单列无表头),如果需要保留表头可以调整这两个参数

如果运行时遇到文件找不到的问题,记得把代码里的文件名改成你实际的文件路径哦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:17:59