Группировка таблиц с помощью функции groupby модуля pandas в Python
Pandas groupby - это функциональность, которая позволяет разделять данные на группы по определенным критериям, проводить с ними агрегатные операции (например, суммирование или среднее значение) и объединять их обратно в таблицу.
Для использования groupby в pandas нужно вызвать метод groupby на объекте DataFrame и передать аргументом колонку или колонки по которым мы хотим сделать группировку:
python
import pandas as pd
df = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar','foo', 'bar', 'foo', 'foo'],
'B': ['one', 'one', 'two', 'three',
'two', 'two', 'one', 'three'],
'C': [1, 2, 3, 4, 5, 6, 7, 8],
'D': [10, 20, 30, 40, 50, 60, 70, 80]})
# Группировка по колонке А
grouped = df.groupby('A')
# Суммирование в каждой группе
grouped.sum()
В примере мы создаем DataFrame с четырьмя колонками: A, B, C, D. Затем мы группируем его по колонке A и вызываем агрегатную функцию sum. В результате мы получим сумму данных из колонок C и D для каждой группы.
Так же, можно использовать несколько колонок для группировки. В этом случае группировка будет осуществляться для всех уникальных комбинаций значений колонок:
python
grouped = df.groupby(['A', 'B'])
# Среднее значение в каждой группе
grouped.mean()
Помимо встроенных агрегатных функций, таких как sum, mean, count и т.д., можно использовать свои собственные функции при помощи метода agg:
python
grouped.agg(lambda x: x.max() - x.min())
В данном примере мы вычисляем диапазон значений в каждой группе для каждой колонки.
Groupby расширяет возможности pandas для работы с данными и позволяет проводить группировку, агрегирование и анализ данных в одном месте. В сочетании с другими функциями pandas, такими как merge, join и concat, groupby может быть удобным инструментом для манипуляции с данными в pandas.