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