Каков самый быстрый способ прочитать CSV-файл, отсортировать данные, а затем записать отсортированные данные в другой CSPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Каков самый быстрый способ прочитать CSV-файл, отсортировать данные, а затем записать отсортированные данные в другой CS

Сообщение Anonymous »


У меня есть огромный набор данных размером около 600 ГБ, состоящий из нескольких файлов csv. Каждый CSV-файл содержит 1,3 млн x 17 наборов данных. Это выглядит так

длительность индекса is_buy_order выдан location_id min_volume order_id диапазон цен system_id type_id Volume_remain Volume_Total Region_id http_last_modified Station_id constellation_id Universe_id 0 90 Правда 2021-05-04T23:31:50Z 60014437 1 5980151223 5.05 регион 30000001 18 249003 250000 10000001 2021-06-19T16:45:32Z 60014437.0 20000001 канун 1 90 Правда 2021-04-29T07:40:27Z 60012145 1 5884280397 5.01 регион 30000082 18 13120 100000 10000001 2021-06-19T16:45:32Z 60012145.0 20000012 канун 2 90 Ложь 2021-04-28T11:46:09Z 60013867 1 5986716666 12500.00 регион 30000019 19 728 728 10000001 2021-06-19T16:45:32Z 60013867.0 20000003 канун 3 90 Ложь 2021-05-22T14:13:15Z 60013867 1 6005466300 6000.00 регион 30000019 19 5560 9191 10000001 2021-06-19T16:45:32Z 60013867. 0 20000003 канун 4 90 Ложь 2021-05-27T08:14:29Z 60013867 1 6008912593 5999.00 регион 30000019 19 1 1 10000001 2021-06-19T16:45:32Z В настоящее время у меня есть это в фрейме данных. Я запускаю его через некоторый логический фильтр, отфильтровывая все данные по определенному «region_id», который я ищу, а затем помещаю их в пустой фрейм данных. Примерно так:

path = pathlib.Path('somePath') данные = pd.read_csv (путь) Region_index = data.columns.get_loc('region_id') newData = pd.DataFrame(columns=data.columns) для строки в data.values: если строка[region_index] == регион.THE_FORGE.value: newData.loc[len(newData)] = row.tolist() newData.to_csv(newCSVName, index=False) Однако обработка одного файла занимает около 74 минут... Мне нужно сделать это с файлами объемом более 600 ГБ...

Итак, поскольку в заголовке упоминается, какой самый быстрый способ я могу/должен сделать это, что я могу делать итеративно по всем CSV. Я думал об использовании асинхронного режима, но не уверен, что это лучший способ.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»