Скользящая медиана — это медиана определенного количества предыдущих периодов временного ряда.
Чтобы вычислить скользящую медиану для столбца в кадре данных 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