新手使用Pandas打开无空格文件名CSV文件遇CParserError求助
解决Pandas读取无空格文件名CSV时的CParserError问题
别担心,这个CParserError一般和文件名有没有空格关系不大,多半是CSV文件的格式细节或者解析参数没匹配上导致的。我给你整理几个实用的排查和解决方向:
确认CSV的分隔符是否正确
很多时候CSV不一定用逗号分隔,可能是分号、制表符或者其他符号。你可以先手动打开201712_Diarias.csv,看看里面是用什么来分隔数据的。然后在read_csv里指定对应的sep参数:# 比如如果是分号分隔 vdez = pd.read_csv("201712_Diarias.csv", encoding='ISO-8859-1', sep=';') # 如果是制表符 vdez = pd.read_csv("201712_Diarias.csv", encoding='ISO-8859-1', sep='\t')要是不确定分隔符,还可以换成Python解析器(默认是C解析器,对格式要求更严),兼容性会更好:
vdez = pd.read_csv("201712_Diarias.csv", encoding='ISO-8859-1', engine='python')跳过损坏或格式异常的行
如果文件里有几行数据格式不对(比如列数和表头不匹配),也会触发这个错误。你可以让Pandas直接跳过这些有问题的行:# Pandas 1.3及以上版本用这个 vdez = pd.read_csv("201712_Diarias.csv", encoding='ISO-8859-1', on_bad_lines='skip') # 旧版本Pandas用这个 vdez = pd.read_csv("201712_Diarias.csv", encoding='ISO-8859-1', error_bad_lines=False)检查文件路径是否正确
虽然文件名没空格,但如果文件不在当前代码的工作目录里,Pandas也找不到它。你可以先打印当前工作目录确认:import os print(os.getcwd())如果文件不在这个目录,要么把文件移过来,要么用完整的绝对路径读取:
vdez = pd.read_csv("C:/Users/Rafael/你的文件实际路径/201712_Diarias.csv", encoding='ISO-8859-1')尝试更换编码格式
你用的ISO-8859-1虽然常用,但Windows下有些拉丁编码的文件实际是cp1252,两者很接近但有细微差异,试试这个编码:vdez = pd.read_csv("201712_Diarias.csv", encoding='cp1252')
内容的提问来源于stack exchange,提问作者Rafael Figueiredo
相关产品推荐
相关产品推荐

