我想读一个大的csv文件,所以我使用pandas的chunksize
方法迭代器。但是我获得了ParserError
所以我想使用try除了当我得到这个错误时我想传递给下一个块迭代。
所以我测试了一下:
df = pd.read_csv("file.csv",iterator=True)
d=True
while d==True :
try:
df.get_chunk(500000)
exept ParserError :
pass
except StopIteration:
d=False
但是我得到了这个错误:
NameError : name "ParserError" is not defined
。
感谢您的帮助!!
答案 0 :(得分:5)
最新版本的pandas允许read_csv
接受迭代时可以传递的chunksize
参数。
for chunk in pd.read_csv("file.csv",
chunksize=500000,
iterator=True,
error_bad_lines=False,
engine='python'):
... # do something with `chunk`
不需要while
循环或错误处理,因为pd.read_csv
会在StopIteration
耗尽时自动引发for
allow_agent=False
处理并退出。