Назад к вопросам
Бюро 1440
Middle
2
Есть 5 миллионов строк данных в Pandas — что делать, если 100 тысяч работало нормально, а 5 миллионов — нет?
Компании, где спрашивали
Ответ от нейросети
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)
Такой подход позволяет работать с большими файлами, не загружая всё в память сразу.