我有一个3.5 go的大型csv文件,我想用pandas来阅读它。
这是我的代码:
import pandas as pd
tp = pd.read_csv('train_2011_2012_2013.csv', sep=';', iterator=True, chunksize=20000000, low_memory = False)
df = pd.concat(tp, ignore_index=True)
我收到此错误:
pandas/parser.pyx in pandas.parser.TextReader.read (pandas/parser.c:8771)()
pandas/parser.pyx in pandas.parser.TextReader._read_rows (pandas/parser.c:9731)()
pandas/parser.pyx in pandas.parser.TextReader._tokenize_rows (pandas/parser.c:9602)()
pandas/parser.pyx in pandas.parser.raise_parser_error (pandas/parser.c:23325)()
CParserError: Error tokenizing data. C error: out of
我的公羊的容量是8 Go。
试试这个兄弟:
mylist = []
for chunk in pd.read_csv('train_2011_2012_2013.csv', sep=';', chunksize=20000):
mylist.append(chunk)
big_data = pd.concat(mylist, axis= 0)
del mylist
您可以在调用csv文件时尝试设置error_bad_lines = False,即
import pandas as pd
df = pd.read_csv('my_big_file.csv', error_bad_lines = False)
此错误也可能由chunksize = 20000000引起。减少这个问题就解决了我的问题。在ℕʘʘḆḽḘ的解决方案中,chunksize也会减少,这可能已经成功了。