Как рассчитать скользящую медиану в Pandas (с примерами)


Скользящая медиана — это медиана определенного количества предыдущих периодов временного ряда.

Чтобы вычислить скользящую медиану для столбца в кадре данных pandas, мы можем использовать следующий синтаксис:

#calculate rolling median of previous 3 periods
df['column_name']. rolling (3). median ()

В следующем примере показано, как использовать эту функцию на практике.

Пример: вычислить скользящую медиану колонны

Предположим, у нас есть следующие Pandas DataFrame:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'month': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
 'leads': [13, 15, 16, 15, 17, 20, 22, 24, 25, 26, 23, 24],
 'sales': [22, 24, 23, 27, 26, 26, 27, 30, 33, 32, 27, 25]})

#view DataFrame
df

 month leads sales
0 1 13 22
1 2 15 24
2 3 16 23
3 4 15 27
4 5 17 26
5 6 20 26
6 7 22 27
7 8 24 30
8 9 25 33
9 10 26 32
10 11 23 27
11 12 24 25

Мы можем использовать следующий синтаксис для создания нового столбца, содержащего скользящую медиану «продаж» за предыдущие 3 периода:

#calculate 3-month rolling median
df['sales_rolling3'] = df['sales']. rolling (3). median ()

#view updated data frame
df

 month leads sales sales_rolling3
0 1 13 22 NaN
1 2 15 24 NaN
2 3 16 23 23.0
3 4 15 27 24.0
4 5 17 26 26.0
5 6 20 26 26.0
6 7 22 27 26.0
7 8 24 30 27.0
8 9 25 33 30.0
9 10 26 32 32.0
10 11 23 27 32.0
11 12 24 25 27.0

Мы можем вручную проверить, что скользящая медиана продаж, отображаемая для месяца 3, является медианой предыдущих 3 месяцев:

  • Медиана 22, 24, 23 = 23,0

Точно так же мы можем проверить скользящую медиану продаж за 4-й месяц:

  • Медиана 24, 23, 27 = 24,0

Мы можем использовать аналогичный синтаксис для вычисления скользящей 6-месячной медианы:

#calculate 6-month rolling median
df['sales_rolling6'] = df['sales']. rolling (6). median () 

#view updated data frame
df

month leads sales sales_rolling3 sales_rolling6
0 1 13 22 NaN NaN
1 2 15 24 NaN NaN
2 3 16 23 23.0 NaN
3 4 15 27 24.0 NaN
4 5 17 26 26.0 NaN
5 6 20 26 26.0 25.0
6 7 22 27 26.0 26.0
7 8 24 30 27.0 26.5
8 9 25 33 30.0 27.0
9 10 26 32 32.0 28.5
10 11 23 27 32.0 28.5
11 12 24 25 27.0 28.5

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции в pandas:

Как рассчитать скользящее среднее в Pandas
Как рассчитать скользящую корреляцию в Pandas
Как рассчитать процентное изменение в Pandas

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.