Я ищу альтернативный способ чтения набора данных из-за того факта, что, если я прошу его прочитать слишком много строк, я получаю Process finished with exit code 137 (interrupted by signal 9: SIGKILL)
, что убивает программу из-за чрезмерного использования памяти.
with open('pol.csv') as f:
with open('pol_part.csv', 'w') as g:
for i in range(15000000):
g.write(f.readline())
от 10 до 12 мил в настоящее время - самое приятное место для того, что он действительно способен обрабатывать выходные данные, 15 и более убивает их. Самая большая проблема заключается в том, что второй набор данных, который он открывает pol_part.csv
, равен 991 МБ, а исходный набор данных превышает 50 ГБ, поэтому я даже не анализирую подавляющее большинство данных.
Единственная причинаЯ открываю второй фрейм данных, потому что я могу прочитать его часть в панды, не отформатировав CSV до полного дерьма.
df_chunk = pd.read_csv('pol_part.csv',
names=name_cols,
usecols=cols,
sep=None,
skip_blank_lines=True,
engine='python',
error_bad_lines=False,
dtype=col_d_types).dropna()
Я пробовал панды, встроенные в chunksize=N
, но это не удалось, потому что он не может правильно анализировать разделители даже с многоточечным kwarg sep=",\s+"
.
Iпытаюсь использовать функцию генератора, однако она продолжает перезаписывать старые данные.