DataFrame.var() / Series.var()
Метод var() вычисляет несмещённую дисперсию (по умолчанию ddof=1) — меру разброса значений вокруг среднего. Используется для оценки шумности сигнала с датчиков, стабильности измерений, контроля качества.
Сигнатура
DataFrame.var(axis=0, skipna=True, ddof=1, numeric_only=False)
Series.var(axis=None, skipna=True, ddof=1, numeric_only=False)
Параметры
axis—0(по столбцам) или1(по строкам) дляDataFrame.skipna— игнорировать лиNaN.ddof— поправка делителя: знаменательN - ddof.ddof=1— выборочная дисперсия,ddof=0— генеральная.numeric_only— учитывать только числовые столбцы.
Возвращаемое значение
Скаляр (для Series) или Series (для DataFrame).
Примеры
Пример 1. Дисперсия Series
import pandas as pd
s = pd.Series([23.5, 23.6, 23.4, 23.5, 23.7])
print(round(s.var(), 5))
0.013
Пример 2. Сравнение двух датчиков
import pandas as pd
df = pd.DataFrame({
"sensor_A": [23.5, 23.6, 23.4, 23.5, 23.7],
"sensor_B": [21.0, 25.5, 20.1, 27.0, 22.8],
})
print(df.var().round(3))
sensor_A 0.013
sensor_B 8.367
dtype: float64
Сенсор B заметно более шумный.
Пример 3. ddof=0 — генеральная дисперсия
import pandas as pd
s = pd.Series([1, 2, 3, 4, 5])
print(s.var(ddof=1)) # выборочная
print(s.var(ddof=0)) # генеральная
2.5
2.0
Пример 4. Игнорирование NaN
import pandas as pd
import numpy as np
s = pd.Series([10, np.nan, 12, 11, np.nan])
print(round(s.var(), 3))
1.0
Пример 5. Стандартное отклонение через корень
import pandas as pd
import math
s = pd.Series([100, 102, 98, 101, 99])
print(round(math.sqrt(s.var()), 3))
print(round(s.std(), 3))
1.581
1.581
См. также
Примечание
Лицензия и источники
Техническое описание функции адаптировано из официальной документации Pandas (https://pandas.pydata.org/docs/), BSD-3-Clause License. Примеры и пояснения — © AlashEd Wiki.