DataFrame.std() / Series.std()
Метод std() вычисляет стандартное отклонение — меру разброса значений вокруг среднего. По умолчанию используется выборочное отклонение с делителем N − 1.
Сигнатура
DataFrame.std(axis=0, skipna=True, ddof=1, numeric_only=False, **kwargs)
Параметры
axis— ось расчёта.skipna— пропускатьNaN.ddof— поправка делителя:1— выборочное,0— генеральное.numeric_only— только числовые столбцы.
Возвращаемое значение
Скаляр или Series.
Примеры
Пример 1. Разброс показаний датчика
import pandas as pd
temp = pd.Series([22.0, 22.4, 22.1, 22.3, 22.2])
print(round(temp.std(), 4))
0.1581
Пример 2. Стабильность двух датчиков
import pandas as pd
df = pd.DataFrame({
"A": [22.0, 22.1, 22.0, 22.1], # стабильный
"B": [20.0, 24.0, 19.0, 25.0], # шумный
})
print(df.std())
A 0.057735
B 2.943920
dtype: float64
Пример 3. ddof=0 (генеральное)
import pandas as pd
s = pd.Series([1, 2, 3, 4])
print("ddof=1:", round(s.std(ddof=1), 4))
print("ddof=0:", round(s.std(ddof=0), 4))
ddof=1: 1.2910
ddof=0: 1.1180
Пример 4. По строкам
import pandas as pd
df = pd.DataFrame({"x": [1, 10], "y": [2, 20], "z": [3, 30]})
print(df.std(axis=1))
0 1.0
1 10.0
dtype: float64
Пример 5. Поиск выбросов через 3σ
import pandas as pd
s = pd.Series([22, 22, 23, 22, 22, 100, 23])
mean, std = s.mean(), s.std()
outliers = s[(s - mean).abs() > 3 * std]
print(outliers.tolist())
[100]
См. также
Примечание
Лицензия и источники
Техническое описание функции адаптировано из официальной документации Pandas (https://pandas.pydata.org/docs/), BSD-3-Clause License. Примеры и пояснения — © AlashEd Wiki.