Вопрос проверяет понимание ограничений Pandas при работе с большими наборами данных и знание способов оптимизации производительности.
Pandas — мощная библиотека для анализа данных, но она не предназначена для обработки наборов данных, превышающих объем оперативной памяти. Основная проблема — загрузка всего DataFrame в RAM, что при работе с файлами размером в десятки гигабайт приводит к ошибкам MemoryError или критическому замедлению.
import pandas as pd
import numpy as np
# Создаем DataFrame с неоптимальными типами
df = pd.DataFrame({
'id': range(1_000_000),
'value': np.random.rand(1_000_000),
'category': np.random.choice(['A','B','C'], 1_000_000)
})
print(df.memory_usage(deep=True).sum() / 1024**2, 'MB')
# ~ 32 MB
# Оптимизация: меняем типы
df['id'] = df['id'].astype('int32')
df['category'] = df['category'].astype('category')
print(df.memory_usage(deep=True).sum() / 1024**2, 'MB')
# ~ 8 MB — в 4 раза меньшеВывод: Pandas отлично подходит для данных, помещающихся в RAM (до нескольких гигабайт). Для больших объемов используйте чанкинг, оптимизацию типов или переходите на специализированные инструменты вроде Dask или Spark.