В блог
Библиотека Pandas в Python: что это и как работает - IT Resume

Библиотека Pandas в Python: что это и как работает

Дата последнего обновления: 15.04.2025
Дата размещения: 23.03.2025
Людмила Ильичева

Введение

В эпоху цифровых технологий эффективная работа с данными стала ключевым фактором успеха во всех областях. Среди инструментов, предназначенных для работы со структурированными данными, выделяется Python-библиотека Pandas — помощник для анализа, очистки и преобразования информации. В статье мы рассмотрим основные моменты библиотеки Pandas в Python: от базовых операций с данными до продвинутых методов группировки и визуализации. Это поможет вам понять, как применять библиотеку для решения реальных задач в анализе данных.

Основные аспекты, которые будут рассмотрены:

  • Базовые структуры данных: работа с Series и DataFrame для манипуляций с табличными данными.
  • Очистка и подготовка данных: удаление дубликатов, обработка пропусков, фильтрация.
  • Продвинутые методы: группировка, агрегация, построение сводных таблиц.
  • Интеграция с визуализацией: использование библиотек вроде Matplotlib для анализа результатов.

Эти навыки позволят автоматизировать рутинные задачи, оптимизировать анализ данных и применять Pandas в реальных проектах — от аналитики интернет-трафика до машинного обучения.

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

Pandas — это инструмент с открытым исходным кодом, предназначенный для обработки организованных данных, представленных в табличном формате. Название библиотеки образовано от термина «панель данных», который обозначает структурированную информацию, полученную в ходе исследований.

Для чего нужна библиотека Pandas в Python

Библиотека Pandas используется для обработки и анализа данных. Она упрощает взаимодействие с информацией, например, импорт и экспорт данных разных форматов, фильтрацию, объединение и суммирование информации. Также Pandas служит для подготовки данных для моделей машинного обучения, включая нормализацию и масштабирование.

Основные сферы применения Pandas:

Аналитика данных:

Используется для очистки данных, создания отчетов и визуализации результатов с помощью интеграции с библиотеками Matplotlib и Seaborn.

Машинное обучение:

Подготавливает данные для моделей, преобразуя их в требуемый формат и устраняя аномалии.
Научные исследования:
Обрабатывает экспериментальные данные, включая временные ряды и многомерные таблицы.

Финансы:

Анализирует финансовые показатели, прогнозирует тренды и оценивает риски на основе исторических данных.

Основные возможности и преимущества Pandas

Возможности

  1. Обработка данных:
  • Фильтрация, группировка, агрегация.
  • Визуализация через Matplotlib/Seaborn.
  1. Поддержка форматов:
  • Чтение/запись из CSV, JSON, HTML, Excel, SQL.
  1. Очистка данных:
  • Удаление дубликатов, обработка NaN.
  1. Преобразование данных:
  • Создание сводных таблиц (pivot_table).
  1. Анализ данных:
  • Расчет статистики (среднее, медиана и др.).
  1. Интеграция:
  • Совместимость с NumPy, Scikit-Learn.

Преимущества

  1. Простота:
  • Понятный интерфейс.
  1. Гибкость:
    Расширение функционала через другие библиотеки.

  2. Производительность:

  • Оптимизация кода и использование NumPy.
  1. Эффективная работа с пропусками:
  • Инструменты для заполнения/удаления NaN.
  1. Сообщество:
  • Активное развитие и поддержка.

Как установить Pandas в Python


Для интеграции библиотеки в проект выполните следующие шаги:
1. Через pip (стандартный менеджер Python):

pip install pandas
  1. Для Anaconda:
conda install -c conda-forge pandas


Использование в коде
После установки подключите библиотеку к проекту, используя сокращённое имя pd:

import pandas as pd

Структуры данных в Pandas

Pandas предлагает два ключевых типа структур данных для работы с информацией:
Series
Описание: одномерный массив с индексами, позволяющий хранить данные любого типа (числа, строки, временные метки).
Пример создания Series:

import pandas as pd
# Создание Series
series = pd.Series([0, 1, 2], index=['а', 'б', 'в'])  
print(series['a'])  # Вывод: 0 

Особенности:

  • Индексация: у Series есть индекс, который по умолчанию является целочисленным и начинается с 0. Однако индекс можно задать вручную.
  • Типы данных: Series может хранить различные типы данных.
  • Операции: Series поддерживает различные операции, такие как сложение, вычитание, умножение и деление, которые можно выполнять с другими Series или со скалярными значениями.
  • Работа с данными: Series поддерживает фильтрацию, сортировку и другие операции над данными.
DataFrame
  • Описание: это двумерная табличная структура данных, где столбцы представлены объектами класса Series.
  • Пример создания DataFrame:
# Создание DataFrame из словаря
data = {'Страна': ['Россия', 'Казахстан'], 
        'Площадь': [17125191, 2724902]}
df = pd.DataFrame(data)


# Извлечение столбца в Series
series = df['Страна']
print(series)  
# Вывод: 0      Россия
# 1  Казахстан


Особенности:

  • Структура: DataFrame состоит из строк и столбцов. Каждый столбец — это Series, а каждая строка — это набор значений из этих Series.
  • Индексация: DataFrame имеет индекс для строк и столбцов. Индекс строк является целочисленным и начинается с 0, но его можно изменить. Индекс столбцов задается именами столбцов.
  • Типы данных: в DataFrame могут хранится разные типы данных.
  • Операции: DataFrame позволяет выполнять сортировку, фильтрацию, группировку и агрегацию данных.

Анализ данных

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

Сферы применения

  1. Бизнес и маркетинг
  • Сегментация аудитории (анализ покупательских привычек, демографии).
  • Оптимизация запасов (прогнозирование спроса, снижение избытка товаров).
  • Персонализированные предложения (рекомендательные системы).
  • Оценка эффективности рекламных кампаний (сравнение ROI разных стратегий).
  1. Финансы
  • Управление рисками (оценка кредитоспособности, прогнозирование рыночных трендов).
  • Инвестиционные стратегии (анализ акций, облигаций).
  • Соблюдение нормативных требований (антиотмывочные системы).
  1. Производство и промышленность
  • Предиктивное обслуживание (прогнозирование износа оборудования).
  • Оптимизация цепочки поставок (согласование закупок с прогнозом спроса).
  • Контроль качества (анализ данных с датчиков для выявления дефектов).

Основные операции с данными

Нарезка и извлечение данных

Извлечение определенных строк или столбцов позволяет фокусироваться на конкретных данных или удалять ненужную информацию.

Примеры кода:

  1. Извлечение первых строк:
print(df.head(3))  # Первые 3 строки

  1. Извлечение столбцов:
selected_columns = df[['City', 'Street']]  # Выборка по названиям
  1. Извлечение строк по условию:
df_Msc = df[df[City] == ‘Moscow’]  # Город Москва
  1. Извлечение диапазона строк:
slice_df = df.iloc[2:6]  # Строки с индексами от 2 до 6

Просмотр и исследование данных

Просмотр данных позволяет изучить их структуру и содержание, включая типы данных, наличие пропусков и статистические показатели.

Примеры кода:

  1. Структура данных:
print(df.info())  # Типы данных, размер, пропуски

  1. Данные статистики:
print(df.describe())  # Среднее, медиана, стандартное отклонение
  1. Просмотр ‘головы’ данных:
print(df.head())  # Первые 5 строк (по умолчанию)

Чтение и запись данных

Pandas умеет работать с данными разных форматах (CSV, JSON, Excel и др.), что упрощает их загрузку и сохранение для последующего анализа.

Примеры кода:

  1. Для CSV:
df.to_csv('file.csv', index=False)  # Запись данных
df = pd.read_csv('file.csv')  # Чтение данных
  1. Для Excel:
df = pd.read_excel('report.xlsx')  # Чтение
df.to_excel('report.xlsx')         # Запись
  1. Для JSON:
df = pd.read_json('data.json', orient='records')  # Преобразование в DataFrame

Параметры для гибкости

  • Разделители: sep=';' для CSV с другим разделителем.

  • Пропуски: na_values=['NA'] обработка пропущенных значений.

  • Типы данных: dtype={'столбец': 'category'} для оптимизации памяти.

Фильтрация

Фильтрация позволяет отбирать данные по определенным критериям, что облегчает их анализ и обработку. Например, можно выделить сотрудников старше 40 лет или товары, стоимость которых превышает 1000 рублей.

Пример:

# Фильтрация по условию
filtered_df = df[df['Age'] > 40]

Группировка и агрегирование

Группировка данных по ключевым признакам с использованием агрегирующих функций (максимум, минимум, сумма и др) позволяет анализировать информацию на разных уровнях и формировать сводные отчеты.

Пример:


data = {
    'Отдел': ['Финансы', 'IT','Финансы', 'IT'],
    'Зарплата': [100000, 50000, 100000, 60000 ]
}
df = pd.DataFrame(data)

# Группировка по отделам и расчет средней зарплаты
grouped_df = df.groupby('Отдел')['Зарплата'].mean()
print(grouped_df)

Результат:

Отдел
IT         55000.0
Финансы    100000.0

Очистка данных в Pandas

С помощью Pandas можно удалить дубликаты, обработать пропущенные значения, а также отфильтровать данных, что повышает точность последующих выводов.


Операции со столбцами и строками

Столбцы: добавление и удаление

  1. Создание нового столбца
    Пример: добавление столбца NewColumn с значениями:
df['NewColumn'] = [5, 10, 15, 20]
  1. Удаление столбца
    Пример: удаление столбца NewColumn:
df.drop('NewColumn', axis=1, inplace=True)

Строки: добавление и удаление

  1. Добавление новой строки
    Пример: добавление строки с данными Mike, 21, France:
new_row = {'Name': 'Mike', 'Age': 21, 'Country': 'France'}
df.loc[len(df)] = new_row
  1. Удаление строки по условию
    Пример: удаление строк, где страна Франция:
df = df[df['Country'] == 'France']

  1. Удаление строки по индексу
    Пример: удаление строки по индексу 0:
df.drop(df.index[0], inplace=True)

Важно!

  • inplace=True — изменения применяются непосредственно к DataFrame.

  • axis=1 — указывает, что удаляем столбец (по умолчанию axis=0 для строк).

  • len(df) — автоматически определяет последний индекс для добавления строки.

Количество уникальных значений в столбце

  1. Метод .nunique()
    Назначение: Подсчитывает количество уникальных значений в столбце.

Пример:

# Подсчет уникальных стран
unique_countries = df['Country'].nunique()
print(f"Уникальных стран: {unique_countries}")
  1. Метод .value_counts()
    Назначение: Возвращает распределение частоты уникальных значений (сортировка по убыванию).
    Пример:
# Анализ частоты стран
country_counts = df['Country'].value_counts()
print(country_counts)

Результат:

USA      2
UK       2
Germany  1

Важно!

  • Пропуски:
value_counts(dropna=False)

— включает NaN в результат.

nunique(dropna=False)

— считает NaN уникальным.

  • Совместимость:
value_counts() 

работает только с Series (не с DataFrame).

nunique() 

применяется к Series или DataFrame.


Переименование столбца

Метод .rename() позволяет изменить название столбца в DataFrame.
Пример кода:

# Переименование столбца 'OldName' в 'NewName'
df.rename(columns={'OldName': 'NewName'}, inplace=True)

Важно!

  • Ошибка: Если столбец с именем OldName не существует, метод не вызовет ошибку, но изменений не произойдет.

  • Множественное переименование:

df.rename(columns={'Old1': 'New1', 'Old2': 'New2'}, inplace=True)

Сортировка данных

Сортировка — это организация данных в порядке возрастания или убывания по одному или нескольким столбцам, что упрощает их анализ. Например, она помогает быстро находить максимальные или минимальные значения, а также облегчает группировку информации.

Примеры кода:

  1. Сортировка по возрастанию:
df.sort_values(by='Age', inplace=True)  # Возраст от меньшего к большему
  1. Сортировка по убыванию:
df.sort_values(by='Age', ascending=False, inplace=True)  # Возраст от большего к меньшему
  1. Сортировка по нескольким столбцам:
df.sort_values(by=['Country', 'Age'], inplace=True)  # Сначала по стране, затем по возрасту

Ключевые параметры

Сводные таблицы

Сводная таблица — это инструмент для объединения данных по категориям, который структурирует информацию в двумерный формат (строки, столбцы, значения), упрощая анализ и визуализацию.

Сводная таблица:

  1. Группирует данные по уникальным значениям в указанных столбцах.
  2. Применяет агрегирующие функции.
  3. Формирует координатную сетку для анализа взаимосвязей.

Ключевые параметры

Пример:

# Исходные данные
data = {
    'Country': ['USA', 'UK', 'USA', 'Germany', 'UK'],
    'Age': [30, 35, 40, 45, 35]
}
df = pd.DataFrame(data)

# Сводная таблица
pivot = pd.pivot_table(df, values='Age', index='Country', aggfunc='mean')

Результат:

Country
Germany    45.0
UK         35.0
USA        35.0

Визуализация данных в Pandas

  1. Линейный график — визуализация динамики изменения параметра во времени или по другим категориям.

Применение:

  • Анализ трендов: выявление роста/спада параметра во времени.
  • Сравнение данных: отображение нескольких линий на одном графике.

Пример кода:

df.plot.line(x='Year', y='Sales', marker='o', color='red')
plt.title('Динамика продаж')
plt.show()

  1. Гистограмма - график, показывающий распределение данных через интервалы (бинсы).

Применение:

  • Анализ распределений: выявление выбросов, асимметрии.
  • Предварительный просмотр данных: оценка структуры перед анализом.

Пример кода:

df['Age'].plot.hist(bins=6)
plt.title('Распределение по возрасту')
plt.show()

  1. Диаграмма рассеяния — визуализация корреляции между двумя параметрами (например, цена и баллы).

Применение:

  • Анализ взаимосвязей: выявление прямой/обратной корреляции.
  • Предсказание: оценка зависимости одного параметра от другого.

Пример кода:

df.plot.scatter(x='price', y='points')
plt.show()

  1. Барный график - визуализация категориальных данных (например, топ-7 стран по производству вина).

Применение:

  • Анализ категорий: сравнение частоты стран, продуктов, статусов.
  • Предварительный просмотр данных: оценка структуры перед анализом.

Пример кода:

countries = df['country'].value_counts().head(7)
countries.plot.bar()
plt.show()


Заключение

Pandas — это важный модуль Python, который позволяет эффективно работать с данными. Её функционал важен для работы специалистов в области машинного обучения и аналитиков. В этот статье мы рассмотрели ключевые элементы библиотеки: структуры данных, методы обработки информации и визуализация результатов. Pandas постоянно эволюционирует, что повышает ее эффективность в решении задач из разных областей.

Подпишитесь на нашу рассылку
Имя*
Email*
Номер телефона*
Заполняя данную форму, Вы соглашаетесь с политикой конфиденциальности
Никакого спама. Только точечные рассылки с лучшими материалами.