簡體   English   中英

標記數據時出錯。 C 錯誤:pandas python 內存不足,大文件 csv

[英]Error tokenizing data. C error: out of memory pandas python, large file csv

我有一個 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 

我的 ram 的容量是 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 也減少了,這可能已經完成了。

您可以嘗試添加參數engine='python 它加載數據的速度較慢,但​​對我的情況有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM