如何将含逗号的文本文件转换为单列CSV文件(解决Pandas ParserError问题)
解决文本文件转单列CSV的ParserError问题
我来帮你搞定这个问题!你碰到的ParserError根源很明确:pd.read_csv()默认把逗号当作列分隔符,但你的文本里不少行(比如第9行的“再就业保障举措,包括再培训、异地安置、工作分享和离职安置服务”)包含逗号,导致pandas误以为这一行有多个列,和第一行的列数不匹配,直接抛出了解析错误。
下面给你两种靠谱的解决方案,任选其一就能解决问题:
方法一:直接读取每行(推荐,更直观)
这种方法跳过pandas的CSV解析逻辑,直接读取文本的每一行,再转成单列DataFrame,完全避免分隔符冲突:
# 先读取文本文件的所有行,清理空行和首尾空格 with open("ESG_BENEFITS.txt", "r", encoding="utf-8") as f: benefits_list = [line.strip() for line in f if line.strip()] # 导入pandas并创建单列DataFrame import pandas as pd df = pd.DataFrame(benefits_list, columns=["ESG_Benefits"]) # 导出为CSV文件,去掉索引 df.to_csv("ESG_BENEFITS.csv", index=False, encoding="utf-8")
方法二:修正pandas的read_csv参数
如果一定要用pd.read_csv,可以通过指定特殊参数让pandas把整行当作单个字段:
import pandas as pd # 使用python引擎,指定一个不会出现在文本中的分隔符(比如空字符\0),同时关闭引号解析 esg_benefits = pd.read_csv( "ESG_BENEFITS.txt", header=None, sep="\0", # 用空字符当分隔符,确保不会拆分行内容 engine="python", quoting=3 # QUOTE_NONE,不解析任何引号 ) # 给单列命名 esg_benefits.columns = ["ESG_Benefits"] # 导出CSV esg_benefits.to_csv("ESG_BENEFITS.csv", index=False, encoding="utf-8")
两种方法最终都会生成一个单列CSV,每一行对应原文本的一条记录,完美解决逗号导致的解析问题。
内容的提问来源于stack exchange,提问作者StressedBoi69420
相关产品推荐
相关产品推荐

