Метод std
Метод std применяется к DataFrame
и вычисляет стандартное отклонение по умолчанию для столбцов.
Метод возвращает Series с результатами для каждого числового столбца.
Первый параметр axis позволяет задать направление расчёта:
по строкам или столбцам. Параметр skipna определяет,
пропускать ли NaN.
Синтаксис
df.std(axis=0, skipna=True, ddof=1)
Пример
Давайте вычислим стандартное отклонение для всех числовых столбцов таблицы:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50],
'c': [5, 15, 25, 35, 45]
})
res = df.std()
print(res)
Результат выполнения кода:
a 1.581139
b 15.811388
c 15.811388
dtype: float64
Пример
Теперь вычислим стандартное отклонение для строк, указав параметр axis=1:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3],
'b': [10, 20, 30],
'c': [100, 200, 300]
})
res = df.std(axis=1)
print(res)
Результат выполнения кода:
0 55.076078
1 100.995025
2 146.969384
dtype: float64
Пример
Если в таблице есть пропущенные значения, метод по умолчанию их пропускает.
Установим параметр skipna=False, чтобы видеть влияние NaN:
import pandas as pd
import numpy as np
df = pd.DataFrame({
'a': [1, 2, np.nan, 4, 5],
'b': [10, 20, 30, np.nan, 50]
})
res = df.std(skipna=False)
print(res)
Результат выполнения кода:
a NaN
b NaN
dtype: float64
Пример
Параметр ddof (дельта степеней свободы) позволяет управлять делителем в формуле.
По умолчанию ddof=1 (выборочное стандартное отклонение).
Если установить ddof=0, то расчёт будет как для генеральной совокупности:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
})
res = df.std(ddof=0)
print(res)
Результат выполнения кода:
a 1.414214
b 14.142136
dtype: float64