Как группировать с сохранением колонок?
Имею 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