Вебинары Разобраться в IT Реферальная программа Тесты
Программирование Аналитика Дизайн Маркетинг Управление проектами
21 Янв 2024
2 мин
7117

Работа с групповыми статистиками в pandas GroupBy

Пройдите тест, узнайте какой профессии подходите

Работа с данными часто требует группировки и агрегации информации. В Python библиотека pandas предоставляет удобный и мощный инструмент для этого — метод

Освойте Python на курсе от Skypro. Вас ждут 400 часов обучения и практики (достаточно десяти часов в неделю), подготовка проектов для портфолио, индивидуальная проверка домашних заданий и помощь опытных наставников. Получится, даже если у вас нет опыта в IT.

Работа с данными часто требует группировки и агрегации информации. В Python библиотека pandas предоставляет удобный и мощный инструмент для этого — метод groupby(). Он позволяет группировать данные по одному или нескольким столбцам и вычислять различные статистики для каждой группы.

Рассмотрим простой пример. Пусть имеется следующий датафрейм:

import pandas as pd

data = {'A': ['foo','foo','foo','bar','bar','bar'],
        'B': ['one','one','two','two','one','one'],
        'C': ['x','y','x','y','x','y'],
        'D': [1, 2, 3, 4, 5, 6],
        'E': [10, 20, 30, 40, 50, 60]}

df = pd.DataFrame(data)

Допустим, требуется найти среднее значение столбцов ‘D’ и ‘E’ для каждой комбинации значений в столбцах ‘A’ и ‘B’. Для этого можно использовать метод groupby():

df.groupby(['A', 'B']).mean()

В результате получается датафрейм, в котором индексами являются уникальные комбинации значений столбцов ‘A’ и ‘B’, а значениями — средние значения столбцов ‘D’ и ‘E’ для каждой группы.

Однако, помимо среднего значения, часто требуется знать количество элементов в каждой группе. В pandas это можно сделать с помощью метода size():

df.groupby(['A', 'B']).size()

Этот код вернет серию, где индексами будут уникальные комбинации значений столбцов ‘A’ и ‘B’, а значениями — количество строк в каждой группе.

Если требуется добавить эту информацию в исходный датафрейм, можно использовать метод merge():

grouped = df.groupby(['A', 'B']).size().reset_index(name='counts')
df = pd.merge(df, grouped, on=['A', 'B'], how='left')

В результате в исходном датафрейме появится новый столбец ‘counts’, содержащий количество строк в каждой группе.

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

На курсе Skypro «Python-разработчик» освоите основные инструменты программирования, получите опыт на реальных проектах и сможете стартовать в профессии уверенным новичком. Преподаватели — практикующие программисты с большим опытом, а в центре карьеры помогут составить цепляющее резюме и подготовиться к собеседованию.

Добавить комментарий