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