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.