尝试除了chunksize迭代器

时间:2017-12-19 12:00:38

标签: python pandas chunks try-except

我想读一个大的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

感谢您的帮助!!

1 个答案:

答案 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处理并退出。