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

使用Pandas查找CSV中匹配指定字符串的所有行并导出为新CSV的问题求解

问题修复方案

核心问题原因

  • 导出CSV时未指定分隔符,pandas默认使用逗号作为分隔符,导致输出文件出现逗号分隔的行
  • 数据类型不匹配:pandas自动推断列类型时,可能出现待匹配列表和待筛选CSV第一列的类型不一致(比如一个是整型一个是字符串),或是列内容存在不可见空白符,导致isin匹配仅命中部分行

修改后代码

import pandas as pd

# 读取待匹配列表,统一转为字符串并去除首尾空白
list_to_find = pd.read_csv(input_file, header=None, dtype=str)[0].str.strip()
# 读取竖线分隔的CSV文件,指定第一列类型为字符串
data_to_read = pd.read_csv(csv_file, sep='|', header=None, dtype={0: str})
# 匹配筛选
output_data_csv = data_to_read[data_to_read[0].str.strip().isin(list_to_find)]
# 导出时指定分隔符为竖线
output_data_csv.to_csv('output.csv', index=False, header=None, sep='|')

关键修改点

  1. 读取文件时显式指定相关列为字符串类型,避免类型差异导致匹配失败
  2. 对所有需要匹配的字符串调用str.strip()去除首尾空白符,排除隐藏字符干扰
  3. 导出CSV时显式指定sep='|',保证输出为竖线分隔格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 13:39:04