Sobes.tech
Middle
57

Ci sono 5 milioni di righe di dati in Pandas: cosa fare se 100 mila hanno funzionato normalmente, ma 5 milioni no?

Le aziende dove è stato chiesto
Бюро 1440Бюро 1440

Risposta dell'AI

sobes.tech AI

Если при обработке 100 тысяч строк в Pandas всё работает нормально, а при увеличении до 5 миллионов — нет (например, возникает ошибка памяти или очень долго выполняется), стоит рассмотреть следующие подходы:

  • Оптимизация памяти:

    • Использовать типы данных с меньшим потреблением памяти (category для строк, float32 вместо float64 и т.п.).
    • Загружать данные по частям (чанками) с помощью параметра chunksize в pd.read_csv.
  • Обработка по частям:

    • Разбить данные на части и обрабатывать их поочередно, а затем агрегировать результаты.
  • Использование более эффективных инструментов:

    • Рассмотреть библиотеки, оптимизированные для больших данных, например, Dask, Vaex или PySpark.
  • Профилирование кода:

    • Проверить, какие операции занимают больше всего времени и памяти, и оптимизировать их.

Пример использования chunksize:

import pandas as pd

chunksize = 100000
results = []
for chunk in pd.read_csv('data.csv', chunksize=chunksize):
    # обработка каждого чанка
    processed = chunk[chunk['value'] > 0]  # пример фильтрации
    results.append(processed)

final_df = pd.concat(results)

Такой подход позволяет работать с большими файлами, не загружая всё в память сразу.