Вопрос проверяет знание методов оптимизации памяти при работе с библиотекой Pandas для обработки больших датасетов.
Pandas по умолчанию использует типы данных с избыточной точностью, например, int64 или float64, что приводит к неоправданному расходу памяти. Для больших датасетов это может вызвать ошибки нехватки памяти или замедление работы. Оптимизация заключается в приведении типов к минимально необходимым.
import pandas as pd
import numpy as np
# Создаем большой датафрейм с неоптимальными типами
df = pd.DataFrame({
'id': np.random.randint(0, 1000, size=100000),
'value': np.random.randn(100000),
'category': np.random.choice(['A', 'B', 'C'], size=100000)
})
print('До оптимизации:', df.memory_usage(deep=True).sum())
# Оптимизация типов
df['id'] = df['id'].astype('int16')
df['value'] = df['value'].astype('float32')
df['category'] = df['category'].astype('category')
print('После оптимизации:', df.memory_usage(deep=True).sum())Оптимизация памяти в Pandas особенно полезна при работе с большими датасетами, которые не помещаются в оперативную память. Применение правильных типов данных и загрузка частями позволяют эффективно обрабатывать данные без потери производительности.