read_csv()&字符串中的EOF字符导致解析问题

时间:2014-11-26 21:08:45

标签: python

我正在尝试从zip文件中读取50个csv文件,但一直在

CParserError:标记数据时出错。 C错误:从第166行开始的字符串内的EOF 我知道读取数据中的特定字符串有错误,可以手动修复,但不想手动提取所有csv文件来修复每个。

with zipfile.ZipFile('C:\Users\Austen\Anaconda\cs109_final\CA34.zip') as zf:
   for name in zf.namelist():
      container[name] = pd.read_csv(zf.open(name))

我发现的问题是有一个;在每个csv文件中朝向文件的末尾。我怎么会忽略它?

参考来自:

https://github.com/pydata/pandas/issues/5500

试图添加

    container[name] = pd.read_csv(zf.open(name),skipfooter=4) 

但我得到'意外的数据结束'

2 个答案:

答案 0 :(得分:5)

为read_csv添加选项会解决问题吗?我有一个类似的问题,它通过添加选项quoting = csv.QUOTE_NONE

来修复

例如:

df = pd.read_csv(csvfile, header = None, delimiter="\t", quoting=csv.QUOTE_NONE, encoding='utf-8')

本次讨论中的第二条评论讨论了原因: https://github.com/pydata/pandas/issues/5500

答案 1 :(得分:1)

传递engine =“python”解决了这个问题。

参考:Most frequent errors