Групповая агрегация панд с переменными временными окнами - PullRequest
0 голосов
/ 23 октября 2018

У меня есть фрейм данных (df), подобный приведенному ниже:

month-year    name    a    b    c  start_date    end_date
2018-01       X       2    1    4  2018-01-01    2018-01-31
2018-01       Y       1    0    5  2018-01-01    2018-02-31
2018-01       X       1    6    3  2018-01-01    2018-01-31
2018-01       Y       4    10   7  2018-01-01    2018-02-31
2018-02       X       13   4    2  2018-02-01    2018-02-31 
2018-02       Y       22   13   9  2018-01-01    2018-02-31
2018-02       X       3    7    4  2018-02-01    2018-02-31 
2018-02       Y       2    15   0  2018-01-01    2018-02-31

Я хочу groupby month-year и name, чтобы получить сумму столбца aсреднее значение столбца b и стандартное значение столбца c.Однако я хочу, чтобы сумма, среднее значение и стандартное значение были скользящим / кумулятивным числом.Кроме того, я хочу, чтобы скользящее / кумулятивное число было скользящим / кумулятивным числом в start_date и end_date.

Другими словами, что я могу сделать, чтобы получить такой вывод?

month-year    name    a    b    c
2018-01       X       3    3.5  0.71
              Y       5    5    1.41
2018-02       X       16   5.5  1.4
              Y       29   9.5  3.86

Спасибо.

1 Ответ

0 голосов
/ 23 октября 2018

Вы можете использовать groupby (). Agg ()

df.groupby(['month-year', 'name']).agg({'a':'sum', 'b':'mean', 'c':'std'})


                        a    b    c
month-year  name            
2018-01-01   X         3    3.5   0.707107
             Y         5    5.0   1.414214
2018-02-01   X         16   5.5   1.414214
             Y         24   14.0  6.363961
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...