Новый столбец с «3 периода — простая скользящая средняя»

avatar
Tie_24
7 апреля 2018 в 22:12
42
1
-1
                      A         B   C
0   2002-01-13 10:00:00      Jack  10
1   2002-01-13 10:00:00    Hellen  10
2   2002-01-13 12:00:00      Sibl  14
3   2002-01-13 12:00:00     Steve  14
4   2002-01-18 10:00:00    Ridley  38
5   2002-01-18 10:00:00     Scott  38
6   2002-01-18 12:00:00     Rambo  52
7   2002-01-18 12:00:00     Peter  52
8   2002-02-09 08:00:00      Brad  90
9   2002-02-09 08:00:00  Victoria  90
10  2002-02-09 14:00:00  Caroline   8
11  2002-02-09 14:00:00    Andrea   8

Я хочу создать новый df['D'] с "3 периодом - простая скользящая средняя" C, сгруппировать по столбцу даты и времени A. Если возможно, используйте convolve.

Вывод должен быть:

                      A         B   C      D
0   2002-01-13 10:00:00      Jack  10   
1   2002-01-13 10:00:00    Hellen  10
2   2002-01-13 12:00:00      Sibl  14
3   2002-01-13 12:00:00     Steve  14
4   2002-01-18 10:00:00    Ridley  38  20.66
5   2002-01-18 10:00:00     Scott  38  20.66
6   2002-01-18 12:00:00     Rambo  52  34.66
7   2002-01-18 12:00:00     Peter  52  34.66
8   2002-02-09 08:00:00      Brad  90  60.00
9   2002-02-09 08:00:00  Victoria  90  60.00
10  2002-02-09 14:00:00  Caroline   8  50.00
11  2002-02-09 14:00:00    Andrea   8  50.00
Источник

Ответы (1)

avatar
Scott Boston
7 апреля 2018 в 23:25
1

Попробуем:

df['D'] = df.A.map(df.groupby('A')['C'].mean().rolling(3).mean())

Вывод:

                      A         B   C          D
0   2002-01-13 10:00:00      Jack  10        NaN
1   2002-01-13 10:00:00    Hellen  10        NaN
2   2002-01-13 12:00:00      Sibl  14        NaN
3   2002-01-13 12:00:00     Steve  14        NaN
4   2002-01-18 10:00:00    Ridley  38  20.666667
5   2002-01-18 10:00:00     Scott  38  20.666667
6   2002-01-18 12:00:00     Rambo  52  34.666667
7   2002-01-18 12:00:00     Peter  52  34.666667
8   2002-02-09 08:00:00      Brad  90  60.000000
9   2002-02-09 08:00:00  Victoria  90  60.000000
10  2002-02-09 14:00:00  Caroline   8  50.000000
11  2002-02-09 14:00:00    Andrea   8  50.000000
Tie_24
8 апреля 2018 в 08:38
0

Спасибо, Скотт! Как раз то, что я искал!!