Метод var
Метод var применяется к объекту Resampler,
который создаётся методом resample у DataFrame
или Series. Он возвращает дисперсию значений для каждого
интервала передискретизации. Первым параметром можно передать
значение ddof (дельта степеней свободы), которое
по умолчанию равно 1.
Синтаксис
resampler.var([ddof])
Пример
Создадим временной ряд и выполним передискретизацию с вычислением дисперсии по месяцам:
import pandas as pd
index = pd.date_range('2023-01-01', periods=12, freq='ME')
ser = pd.Series([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], index=index)
res = ser.resample('QE').var()
print(res)
Результат выполнения кода:
2023-03-31 2.5
2023-06-30 2.5
2023-09-30 2.5
2023-12-31 2.5
dtype: float64
Пример
Изменим параметр ddof на 0, чтобы
получить смещённую оценку дисперсии:
import pandas as pd
index = pd.date_range('2023-01-01', periods=12, freq='ME')
ser = pd.Series([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], index=index)
res = ser.resample('QE').var(ddof=0)
print(res)
Результат выполнения кода:
2023-03-31 1.666667
2023-06-30 1.666667
2023-09-30 1.666667
2023-12-31 1.666667
dtype: float64
Пример
Применим метод var к DataFrame
с несколькими колонками:
import pandas as pd
index = pd.date_range('2023-01-01', periods=6, freq='ME')
df = pd.DataFrame({
'a': [1, 3, 5, 7, 9, 11],
'b': [2, 4, 6, 8, 10, 12]
}, index=index)
res = df.resample('QE').var()
print(res)
Результат выполнения кода:
a b
2023-03-31 4.0 4.0
2023-06-30 4.0 4.0
Пример
Если в данных присутствуют пропуски, метод
var их игнорирует:
import pandas as pd
import numpy as np
index = pd.date_range('2023-01-01', periods=6, freq='ME')
ser = pd.Series([1, np.nan, 5, 7, np.nan, 11], index=index)
res = ser.resample('QE').var()
print(res)
Результат выполнения кода:
2023-03-31 8.0
2023-06-30 8.0
dtype: float64