Метод std аксессора expanding
Метод std аксессора expanding применяется к DataFrame
или Series и вычисляет стандартное отклонение с расширяющимся окном.
Это означает, что для каждой точки вычисляется стандартное отклонение
по всем предыдущим наблюдениям, включая текущее. По умолчанию метод
использует деление на N-1 (выборочное стандартное отклонение),
но это поведение можно изменить с помощью параметра ddof.
Синтаксис
df.expanding().std([ddof, numeric_only, engine, engine_kwargs])
Основные параметры
ddof - целое число, определяет дельту степеней свободы.
По умолчанию 1 (выборочное стандартное отклонение).
numeric_only - булево значение, указывает, включать ли только
числовые столбцы. По умолчанию False.
Пример
Давайте вычислим расширяющееся стандартное отклонение для столбца таблицы:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
})
res = df['a'].expanding().std()
print(res)
Результат выполнения кода:
0 NaN
1 0.707107
2 1.000000
3 1.290994
4 1.581139
dtype: float64
Первое значение равно NaN, так как для одного элемента
стандартное отклонение не определено.
Пример
Применим метод ко всей таблице:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
})
res = df.expanding().std()
print(res)
Результат выполнения кода:
a b
0 NaN NaN
1 0.707107 7.071068
2 1.000000 10.000000
3 1.290994 12.909944
4 1.581139 15.811388
Пример
Изменим параметр ddof для вычисления
стандартного отклонения генеральной совокупности:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
})
res = df['a'].expanding().std(ddof=0)
print(res)
Результат выполнения кода:
0 0.000000
1 0.500000
2 0.816497
3 1.118034
4 1.414214
dtype: float64
При ddof=0 вычисляется стандартное отклонение
генеральной совокупности, и первое значение становится равным 0.
Пример
Рассмотрим работу метода на Series:
import pandas as pd
ser = pd.Series([1, 2, 3, 4, 5])
res = ser.expanding().std()
print(res)
Результат выполнения кода:
0 NaN
1 0.707107
2 1.000000
3 1.290994
4 1.581139
dtype: float64