我想读取一个大的 csv 文件,所以我使用了 pandas 的 chunksize
方法迭代器。但是我得到了一个 ParserError
所以我想使用 try except 并且当我得到这个错误时我想传递到下一个 block 迭代。
所以我测试了:
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:名称“ParserError”未定义
。
谢谢你的帮助!!
最佳答案
最新版本的 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
处理并退出。
关于python - 尝试使用 chunksize 迭代器除外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47886546/