У меня есть dataframe, который выглядит какКак суммировать много столбцов с группой pandas?
day type col d_1 d_2 d_3 d_4 d_5...
1 A 1 1 0 1 0
1 A 2 1 0 1 0
2 B 1 1 1 0 0
То есть, у меня есть один нормальный столбец (столбец) и количество столбцов префиксом D_
Мне нужно выполнить GroupBy днем и типа, и я хочу для вычисления суммы значений в каждом столбце d_ для каждой комбинации дневного типа. Я также должен выполнять другие функции агрегации на другие столбцы в моих данных (например, col
в примере)
можно использовать:
agg_df=df.groupby(['day','type']).agg({'d_1': 'sum', 'col': 'mean'})
но это вычисляет сумму только для одного столбца D_. Как я могу указать все возможные столбцы d_ в моих данных?
Другими словами, я хотел бы написать что-то вроде
agg_df=df.groupby(['day','type']).agg({'d_*': 'sum', 'col': 'mean'})
так, что ожидаемый результат:
day type col d_1 d_2 d_3 d_4 d_5...
1 A 1.5 2 0 2 0 ...
2 B 1 1 1 0 0
Как вы можете видеть, цв агрегируется среднего значения, в то время как d_ столбцы суммируются.
Благодарим за помощь!
Каков ваш ожидаемый результат? –
Я действительно не понимаю, вам не нужно просто 'df.groupby (['day', 'type'], as_index = False) .sum()'? –
нет, потому что у меня есть много других столбцов в данных. Я просто хочу их суммировать. Я выполняю другие функции агрегации в других столбцах. –