У меня есть ноутбук с Ubuntu с 8 ГБ оперативной памяти, а также файл CSV объемом 2 ГБ, но когда я использую метод pandas read_csv для загрузки своих данных, оперативная память полностью заполняется, в то время как 7 ГБ оперативной памяти свободно. как файл размером 2 ГБ заполняет 7 ГБ оперативной памяти?
ошибка памяти при загрузке CSV-файла?
comment
Можете ли вы вставить код, чтобы сопровождать свой вопрос?
- person kiran.koduru   schedule 09.11.2016
comment
Эти потоки SO могут быть полезны ошибка с большими наборами данных для pandas concat и numpy append"> stackoverflow.com/questions/19590966/ stackoverflow.com/questions/17557074/
- person Bharath   schedule 09.11.2016
Ответы (2)
Причина, по которой вы получаете это предупреждение low_memory, может заключаться в том, что угадывание dtypes для каждого столбца требует очень много памяти. Pandas пытается определить, какой dtype установить, анализируя данные в каждом столбце.
В случае использования 32-битной системы: при использовании 32-битной версии в Windows часто возникают ошибки памяти. Это связано с тем, что 32-битные процессы по умолчанию получают только 2 ГБ памяти для игры.
Попробуй это :
tp = pd.read_csv('file_name.csv', header=None, chunksize=1000)
df = pd.concat(tp, ignore_index=True)
person
harshil9968
schedule
09.11.2016
да. это было из-за dtypes, и я преобразовал некоторые столбцы dtype во время загрузки. Благодарю.
- person Abdullah Shobi; 11.11.2016
я пытался проголосовать, но он не отображается публично, потому что у меня меньше 15 репутации;)
- person Abdullah Shobi; 16.11.2016
попробуйте использовать параметр chunksize:
df = pd.concat((chunk for chunk in pd.read_csv('/path/to/file.csv', chunksize=10**4)),
ignore_index=True)
person
MaxU
schedule
09.11.2016
ваш первый ужасно неэффективен, добавьте примечание: pandas.pydata.org/pandas-docs /stable/merging.html
- person Jeff; 09.11.2016
каждую итерацию цикла вы делали копию все большего и большего кадра; вместо этого добавьте в список и вызовите concat один раз (как в текущем примере)
- person Jeff; 09.11.2016