Вам необходимо использовать свойство chunksize
pandas. См., Например, Как прочитать CSV-файл размером 6 ГБ с помощью pandas.
. Вы будете обрабатывать N строк одновременно, без загрузки всего кадра данных. N
будет зависеть от вашего компьютера: если N мало, это будет стоить меньше памяти, но увеличит время выполнения и увеличит нагрузку ввода-вывода.
# create an object reading your file 100 rows at a time
reader = pd.read_csv( 'bigfile.tsv', sep='\t', header=None, chunksize=100 )
# process each chunk at a time
for chunk in file:
result = chunk.melt()
# export the results into a new file
result.to_csv( 'bigfile_melted.tsv', header=None, sep='\t', mode='a' )
Кроме того, вы можете использовать аргумент dtype=np.int32
для read_csv
, если у вас есть целое число или dtype=np.float32
для быстрой обработки данных, если вам не нужна точность.
Примечание: здесь у вас есть примеры использования памяти: Использование Chunksize в Pandas .