Что такое библиотека Pandas?

«Что такое библиотека Pandas?» — вопрос из категории Pandas и NumPy, который задают на 26% собеседований Data Scientist / ML Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Pandas — это высокоуровневая библиотека Python для анализа и обработки структурированных (табличных) данных. Её основная сила — в работе с помеченными данными, подобно таблицам в SQL или Excel, но с мощью программирования.

Ключевые структуры данных:

  • Series: Одномерный помеченный массив. Похож на столбец таблицы или словарь.
  • DataFrame: Двумерная, гетерогенная таблица с помеченными строками и столбцами. Это основная рабочая лошадка.

Основные возможности, которые я постоянно использую:

  1. Чтение и запись данных из множества источников:
    df = pd.read_csv('data.csv')
    df.to_excel('output.xlsx', sheet_name='Results')
  2. Инспекция и очистка данных:
    df.info()        # Типы данных и пропуски
    df.describe()    # Статистика
    df.isnull().sum() # Количество пропусков
    df.dropna()      # Удаление строк с NaN
    df.fillna(0)     # Заполнение пропусков
  3. Выборка и фильтрация:

    # Выбор столбцов
    df[['name', 'age']]
    
    # Фильтрация по условию (синтаксис, похожий на SQL WHERE)
    adults = df[df['age'] >= 18]
    
    # Сложные условия
    filtered = df[(df['department'] == 'IT') & (df['salary'] > 100000)]
  4. Группировка и агрегация (аналог GROUP BY в SQL):

    # Средняя зарплата по отделам
    df.groupby('department')['salary'].mean()
    
    # Несколько агрегаций
    df.groupby('department').agg({'salary': ['mean', 'min', 'max'], 'age': 'median'})
  5. Работа с временными рядами (мощная встроенная поддержка дат и времени).

Сильные стороны: Невероятно выразительный и продуктивный синтаксис для операций с данными, отличная интеграция с экосистемой Python (NumPy, Matplotlib, Scikit-learn). Ограничения: Для очень больших данных (не помещающихся в оперативную память) лучше смотреть в сторону Dask или Vaex. Нативные операции Pandas не всегда эффективно параллелизуются.