Как группировать с сохранением колонок?

Имею df следующего формата:

        DATE      DD       IN            AB      COUNT
0  2021-03-01   in          one         00111      21725
1  2021-03-01   in          nge          00111       1616
2  2021-03-03   in          TA          00111       4806
3  2021-03-02  ou          one          00111      29523
4  2021-03-03  ou          nge          00111         57
5  2021-03-02  ou           TA          00111         18

Выполняю группировку следующим запросом:

df1 = df.groupby(['DATE'], as_index=False)['COUNT'].sum() #group by date

На что получаю df1 в следующем формате:

        DATE  COUNT
0 2021-03-01  29081
1 2021-03-02  11494
2 2021-03-03  17170

Возможно ли сделать группировку с сохранением формата таблицы, где столбцы которые не участвуют в группировке заполнялись значением all в соответ. виде:

         DATE      DD       IN            AB      COUNT
0  2021-03-01      all      all         all      29081
1  2021-03-02      all      all         all       11494
2  2021-03-03      all      all         all       17170

Или в данном случае необходимо создавать новый df и уже заполнять из получившейся группировки?


Ответы (1 шт):

Автор решения: MaxU
res = (df
       .groupby(['DATE'], as_index=False)['COUNT']
       .sum()
       .assign(**{col: "all" for col in df.columns.drop(["DATE", "COUNT"])})
       [df.columns])

результат:

In [11]: res
Out[11]:
        DATE   DD   IN   AB  COUNT
0 2021-03-01  all  all  all  23341
1 2021-03-02  all  all  all  29541
2 2021-03-03  all  all  all   4863
→ Ссылка