使用Pandas导入CSV后存在异常字符,如何导出规范CSV文件?
解决CSV导入Pandas后的异常格式问题
嘿,这问题我太熟了!你遇到的根本原因是原CSV文件的分隔符不是默认的逗号,而是""|""这种特殊格式——Pandas用默认逗号去解析,自然会把整行当成一列,导致列显示异常、出现一堆奇怪字符。下面给你几个靠谱的解决办法,从简单到稳妥都有:
方法一:直接让Pandas正确解析原文件(最稳妥)
既然知道了分隔符是""|"",咱们直接告诉Pandas用这个分隔符读取,再清理掉多余的双引号就行:
import pandas as pd # 读取文件:用正则匹配特殊分隔符,指定python引擎(正则需要它) df = pd.read_csv( "commaSeperated.csv", sep=r'""\|""', # 正则匹配`""|""`,转义是为了让Python识别特殊字符 engine='python', skipinitialspace=True # 忽略分隔符后的空格,避免字段开头带空格 ) # 清理字段前后多余的双引号(如果有的话) df = df.apply(lambda col: col.str.strip('"') if col.dtype == 'object' else col) # 导出规范CSV:index=False去掉索引,quoting=1给字符串字段加双引号符合标准 df.to_csv("cleaned_standard.csv", index=False, quoting=1)
方法二:手动替换分隔符(适合快速处理)
如果不想写代码,用Notepad++就能批量搞定:
- 打开原CSV文件,按
Ctrl+H调出替换窗口 - 「查找内容」输入
""|"",「替换为」输入, - 点击「全部替换」,保存成新文件后,再用
pandas.read_csv读取就完全正常了
注意:如果你的字段内容本身包含逗号,别用这个方法——会把字段拆碎,还是方法一更靠谱。
为啥会出现异常?
你用pandas.read_csv("commaSeperated.csv")时,Pandas默认用逗号,当分隔符,但原文件是用""|""分隔字段的,所以Pandas把整行内容当成了一个列,查看columns和head()时自然会显示一堆混乱的字符。
内容的提问来源于stack exchange,提问作者Emmanuel Osei Mensah
相关产品推荐
相关产品推荐

