Проблема с обработкой большого (> 1 ГБ) файла CSV

#python-3.x #pandas #csv

#python-3.x #pandas #csv

Вопрос:

У меня есть большой файл CSV, и я должен отсортировать и записать отсортированные данные в другой файл CSV. Файл CSV имеет 10 columns . Вот мой код для сортировки.

 data = [ x.strip().split(',') for x in open(filename '.csv', 'r').readlines() if x[0] != 'I' ]

data = sorted(data, key=lambda x: (x[6], x[7], x[8], int(x[2])))

with open(filename   '_sorted.csv', 'w') as fout:
    for x in data:
        print(','.join(x), file=fout)
  

Он отлично работает с размером файла ниже 500 Megabytes , но не может обрабатывать файлы размером больше 1 GB . Есть ли какой-либо способ сделать этот процесс эффективным для памяти? Я запускаю этот код на Google Colab .

Комментарии:

1. Почему бы не использовать pandas.read_csv() функцию? Он должен выполнять то же самое, что и ваш цикл для импорта данных.

2. Можете ли вы привести пример с кодом? Допустим, я загрузил CSV файл с pandas.read_csv помощью. Тогда как я могу это отсортировать?

Ответ №1:

Вот ссылка на блог об использовании pandas для больших наборов данных. В примерах по ссылке они рассматривают анализ данных из больших наборов данных размером ~ 1 ГБ.

Просто введите следующее, чтобы импортировать данные CSV в python.

 import pandas as pd
gl = pd.read_csv('game_logs.csv', sep = ',')