Своя функция группы в Pandas
Чтобы посчитать по группе
своё правило, после группировки
используют метод apply
на объекте групп: функция
получает кусок таблицы группы
и возвращает одно значение.
Это не тот же приём, что
apply по всей таблице
без групп.
Найдём размах продаж в каждом
отделе - разницу между
максимумом и минимумом
столбца sales:
import pandas as pd
data = {
'dept': ['s', 's', 's', 'm', 'm'],
'sales': [10, 30, 20, 5, 15],
}
office = pd.DataFrame(data)
def spread(group):
col = group['sales']
return col.max() - col.min()
spreads = office.groupby('dept').apply(spread)
print(spreads) # выведет dept
# m 10
# s 20
# dtype: int64
На выходе ряд с индексом
из ключей групп: у отдела
s размах 20,
у отдела m - 10.
В результате ряд: по одному
числу на каждую группу,
индекс совпадает с ключами.
Создайте таблицу с классами
и ростом учеников в столбце
height. Для каждого
класса получите размах роста
и выведите ряд.
Соберите таблицу с регионами
и объёмом поставок в столбце
vol. По каждому региону
найдите разницу между
наибольшим и наименьшим
объёмом и покажите результат.
Из таблицы с бригадами и
временем сборки в столбце
mins выведите по
одному числу на бригаду:
насколько время разбросано
от минимума до максимума.