我正在尝试从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)
但我得到'意外的数据结束'
答案 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”解决了这个问题。