Как оптимизировать скрипт Python для эффективной обработки больших файлов CSV?Python

Программы на Python
Ответить
Anonymous
 Как оптимизировать скрипт Python для эффективной обработки больших файлов CSV?

Сообщение Anonymous »

Я работаю над проектом Python, который включает обработку больших файлов CSV (размером 2–5 ГБ). Сценарий читает файл CSV, выполняет преобразование данных и записывает выходные данные в новый файл. Однако он работает очень медленно и потребляет много памяти.
Вот текущий подход, который я использую:

Код: Выделить всё

import csv

with open('large_file.csv', 'r') as infile, open('output_file.csv', 'w', newline='') as outfile:
reader = csv.reader(infile)
writer = csv.writer(outfile)
for row in reader:
# Perform some transformation (e.g., clean data, filter rows)
if int(row[2]) > 1000:  # Example filter condition
writer.writerow(row)

Проблемы:
Выполнение сценария занимает несколько часов.
Он потребляет много памяти, что иногда приводит к сбоям на моем компьютере. с 8 ГБ ОЗУ.
Чтение файла частями с помощью панд:

Код: Выделить всё

import pandas as pd

chunks = pd.read_csv('large_file.csv', chunksize=10000)
for chunk in chunks:
# Transformation logic here

Это улучшило использование памяти, но не оказало существенного влияния на скорость.
Экспериментировал с csv.DictReader для более читаемых преобразований, но производительность была такой же.
Мой вопрос: как оптимизировать этот сценарий для более эффективной обработки CSV-файла с точки зрения скорости и использования памяти? Существуют ли библиотеки или методы Python, специально разработанные для обработки таких больших наборов данных?

Подробнее здесь: https://stackoverflow.com/questions/792 ... fficiently
Ответить

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

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

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

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

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