Python Pandas: функция Group BY для категориальных переменных - PullRequest
0 голосов
/ 08 мая 2020

У меня есть фрейм данных, который выглядит следующим образом:

     DATE                       Cause                 Value
0        2019-04-01     Foreign Interference          0.52680
1        2019-04-01     Foreign Interference          0.91260
2        2019-04-02          Equipment                0.03129
3        2019-04-02          Equipment                0.74794
4        2019-04-02  Vegetation - Touching / Burning  0.12511
5        2019-04-02     Incorrect Installation        0.05635
6        2019-04-02     Incorrect Installation        0.03070
7        2019-04-03     Incorrect Installation        0.02296

Теперь я хочу сгруппировать по фрейму данных по дате и просуммировать значения. Однако я хочу, чтобы столбец «Причина» отображался как совокупность причин, если это произошло в тот же день. Таким образом, мой желаемый результат будет примерно таким:

Желаемый результат:

          DATE                       Cause            Value
0        2019-04-01     Foreign Interference          1.438
1        2019-04-02     Equipment,                    0.9915
                        Vegetation - Touching / Burning, 
                        Incorrect Installation                      
2        2019-04-03     Incorrect Installation        0.02296

Я пытался сделать с groupby(['Date','Cause']), но он не дал желаемого вывод. Любая помощь могла бы быть полезна.

1 Ответ

1 голос
/ 08 мая 2020

Давайте сделаем agg с unique

s=df.groupby('DATE',as_index=False).agg({'Cause': lambda x : ','.join(x.unique()), 'Value':'sum'})
...