Привет!
Пример данных:
df = pandas.DataFrame()
df['группы'] = ['a','a','a','b','b','c','c','c','c','d','d']
df['ящиков'] = [1,11,3,11,5,6,11,8,9,10,11]
df['ситуация'] = [0,1,0,1,1,0,1,0,1,0,1]
df
Как обычно это решается на SQL:
SELECT
"группы",
COUNT(DISTINCT CASE WHEN "ситуация" = 1 THEN "ящиков" END) AS "уникальных_ящиков_при_ситуации_1",
SUM(CASE WHEN "ситуация" = 0 THEN "ящиков" END) AS "сумма_ящиков_при_ситуации_0",
..
..
GROUP BY "группы"
Как в pandas лаконично записать множество агрегатных функций с разными условиями по самым разным столбцам? В SQL это пишется очень просто.
Не писать же по-тупому скажем 10 фильтраций df, потом 10 groupby и 10 merge :). Есть какой-то простой удобный вариант?