1
我想讀3GB文件轉換成數據幀的熊貓與read_csv功能得到錯誤:內存不足大熊貓 - 內存不足
我在PC與16GB的RAM,Ubuntu的16.04和0.18大熊貓版本。我知道我可以提供dtype以方便上傳,但是我的數據集中有太多列,我想先加載它然後決定數據類型。
更新:這不是一個重複的問題。 3GB應該很容易安裝在16GB的機器上。
另一個更新:這是Traceback。
Traceback (most recent call last):
File "/home/a/Dropbox/Programming/Python/C and d/main.com.py", line 9, in <module>
preprocessing()
File "/home/a/Dropbox/Programming/Python/C and d/main.com.py", line 5, in preprocessing
df = pd.read_csv(filepath_or_buffer = file_path, sep ='\t', low_memory = False)
File "/usr/lib/python3/dist-packages/pandas/io/parsers.py", line 498, in parser_f
return _read(filepath_or_buffer, kwds)
File "/usr/lib/python3/dist-packages/pandas/io/parsers.py", line 285, in _read
return parser.read()
File "/usr/lib/python3/dist-packages/pandas/io/parsers.py", line 747, in read
ret = self._engine.read(nrows)
File "/usr/lib/python3/dist-packages/pandas/io/parsers.py", line 1197, in read
data = self._reader.read(nrows)
File "pandas/parser.pyx", line 769, in pandas.parser.TextReader.read (pandas/parser.c:8011)
File "pandas/parser.pyx", line 857, in pandas.parser.TextReader._read_rows (pandas/parser.c:9140)
File "pandas/parser.pyx", line 1833, in pandas.parser.raise_parser_error (pandas/parser.c:22649)
pandas.parser.CParserError: Error tokenizing data. C error: out of memory
不幸的是,我不能發佈整個數據文件,但它有大約2.5萬行,主要是分類(字符串)數據
希望最後更新:
這是我原來的代碼將數據讀入數據幀:
import pandas as pd
def preprocessing():
file_path = r'/home/a/Downloads/main_query.txt'
df = pd.read_csv(filepath_or_buffer = file_path, sep ='\t', low_memory = False)
上面的代碼產生了錯誤消息,我在上面發佈。
我再試圖刪除low_memory = False
,和一切工作,但只給了警告:
sys:1: DtypeWarning: Columns (17,20,23,24,33,44,58,118,134,
135,137,142,145,146,147) have mixed types.
Specify dtype option on import or set low_memory=False.
,你可以嘗試[此方法](http://stackoverflow.com/a/37845530/5741205) – MaxU
@MaxU感謝您的建議。也可以指定'dtype'來減少內存消耗。請你刪除重複的標籤。你所指的問題說得不好。在熊貓文檔中沒有任何地方可以找到文件大小的限制,因此無論文件大小是6GB還是600TB,以及有足夠的RAM都可以處理它,這可能很慢,但這不是重點。以前在有記憶處理的熊貓中存在錯誤,而且你的問題已解決。這個似乎也是bug,所以需要適當的關注。 – user1700890
可以請您發佈完整的錯誤追溯?當然你可以使用'dtype',但是我們沒有看到你的數據,所以我們不能建議你'dtype'參數的值... – MaxU