Метод var
Метод var применяется к DataFrame
и возвращает дисперсию для каждого столбца или строки.
По умолчанию метод вычисляет выборочную дисперсию
(с делителем n-1) по столбцам.
Параметром axis можно задать направление вычислений,
а параметром ddof - количество степеней свободы.
Синтаксис
df.var(axis=0, ddof=1, numeric_only=True)
Пример
Давайте вычислим дисперсию для всех столбцов таблицы:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
})
print(df.var())
Результат выполнения кода:
a 2.5
b 250.0
dtype: float64
Пример
Изменим ось вычислений на строки, передав axis
значение 1 или columns:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
})
print(df.var(axis=1))
Результат выполнения кода:
0 40.5
1 162.0
2 364.5
3 648.0
4 1012.5
dtype: float64
Пример
Изменяем параметр ddof для расчёта
дисперсии по генеральной совокупности:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
})
print(df.var(ddof=0))
Результат выполнения кода:
a 2.0
b 200.0
dtype: float64
Пример
Если в таблице есть нечисловые столбцы, они по умолчанию игнорируются при расчёте:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': ['x', 'y', 'z', 'w', 'v'],
'c': [10, 20, 30, 40, 50]
})
print(df.var())
Результат выполнения кода:
a 2.5
c 250.0
dtype: float64
Пример
Передадим параметр numeric_only со значением
False, чтобы метод попытался
обработать нечисловые столбцы:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': ['x', 'y', 'z', 'w', 'v'],
'c': [10, 20, 30, 40, 50]
})
print(df.var(numeric_only=False))
Результат выполнения кода:
a 2.5
b NaN
c 250.0
dtype: float64