Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад

Как уменьшить потребление памяти при работе с Pandas?

Вопрос проверяет знание методов оптимизации памяти при работе с библиотекой Pandas для обработки больших датасетов.

Короткий ответ

Для уменьшения потребления памяти в Pandas используйте более экономные типы данных, например, int8 вместо int64. Загружайте данные частями с параметром chunksize. Удаляйте ненужные столбцы и строки. Используйте категориальный тип для столбцов с повторяющимися значениями. Применяйте метод pd.read_csv с параметром dtype для явного указания типов.

Длинный ответ

Оптимизация памяти в Pandas

Pandas по умолчанию использует типы данных с избыточной точностью, например, int64 или float64, что приводит к неоправданному расходу памяти. Для больших датасетов это может вызвать ошибки нехватки памяти или замедление работы. Оптимизация заключается в приведении типов к минимально необходимым.

Основные методы

  • Использование подходящих типов данных: Замените int64 на int8, int16 или int32, если значения укладываются в их диапазон. Для float используйте float16 или float32.
  • Категориальные данные: Столбцы с повторяющимися строками преобразуйте в тип category, который хранит уникальные значения отдельно.
  • Загрузка частями: Используйте параметр chunksize в read_csv для обработки данных по частям.
  • Удаление ненужных данных: Удалите столбцы и строки, которые не используются в анализе.

Пример кода

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 особенно полезна при работе с большими датасетами, которые не помещаются в оперативную память. Применение правильных типов данных и загрузка частями позволяют эффективно обрабатывать данные без потери производительности.

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    4

  • Сложность:

    5

Навыки

  • Pandas

Ключевые слова

#pandas

#memory optimization

#dtypes

#dataframe

#chunking

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.