#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 = ',')