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

如何使用Pandas匹配字符串列表与大型CSV文件并导出匹配行至新CSV

实现从大型CSV中匹配筛选指定行的解决方案

需求说明

我们有两个文件需要处理:

  • 小型输入文件(每行一个待匹配值):
1234
3546
  • 大型CSV文件(分隔符为|,包含数百万行数据):
1234|2021-04-20
3546|2019-05-15
8576|2021-08-05
4332|2018-10-04

目标是筛选出大型CSV中第一列存在于小型输入文件中的所有行,生成符合格式要求的新CSV文件,最终输出如下:

1234|2021-04-20
3546|2019-05-15

现有代码的问题

你当前代码里的values = list_to_find.to_string(index=False, header = False)这一步存在问题——它会把DataFrame转换成带换行的字符串,而非我们需要的可用于匹配的数值列表,这会导致后续无法正确匹配数据。

完善后的完整代码

import pandas as pd

# 读取小型输入文件,获取待匹配列表
list_to_find = pd.read_csv(input_file, header=None)
# 提取第一列数据并转为字符串列表,确保匹配时类型统一
match_values = list_to_find[0].astype(str).tolist()

# 读取大型CSV文件,指定分隔符为|,并将第一列设为字符串类型
data_available = pd.read_csv(csv_file, sep='|', header=None, dtype={0: str})

# 筛选出第一列在匹配列表中的行
new_data = data_available[data_available[0].isin(match_values)]

# 将结果输出为目标CSV,保留|分隔符,不输出索引和表头
new_data.to_csv('final.csv', index=False, header=None, sep='|')

代码关键点解释

  • 类型统一:把匹配列表和大型CSV的第一列都转为字符串类型,避免因数值类型(比如int)与字符串类型不匹配导致的漏匹配问题。
  • 高效匹配:使用Pandas内置的isin()方法,它针对大型数据集做了性能优化,处理百万级数据时效率很高。
  • 输出格式对齐:输出时指定sep='|'保证生成的CSV与原文件分隔符一致,同时关闭索引和表头输出,完全符合目标格式要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 14:27:26