Метод cov
Метод cov аксессора rolling применяется к DataFrame или Series и вычисляет скользящую ковариацию между двумя рядами данных в скользящем окне. Первым параметром передаётся другой ряд данных other, с которым вычисляется ковариация. Вторым параметром можно передать pairwise для вычисления попарной ковариации для всех столбцов. Метод возвращает объект того же типа, что и исходный, с вычисленными значениями ковариации.
Синтаксис
rolling.cov(other[, pairwise])
Пример
Давайте вычислим скользящую ковариацию между двумя столбцами таблицы с окном размера 3:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
})
res = df['a'].rolling(window=3).cov(df['b'])
print(res)
Результат выполнения кода:
0 NaN
1 NaN
2 10.000000
3 10.000000
4 10.000000
dtype: float64
Пример
Теперь вычислим скользящую ковариацию для всех столбцов таблицы попарно с помощью параметра pairwise:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50],
'c': [5, 4, 3, 2, 1]
})
res = df.rolling(window=3).cov(pairwise=True)
print(res)
Результат выполнения кода:
a b c
0 a NaN NaN NaN
b NaN NaN NaN
c NaN NaN NaN
1 a NaN NaN NaN
b NaN NaN NaN
c NaN NaN NaN
2 a 1.000000 10.000000 -1.000000
b 10.000000 100.000000 -10.000000
c -1.000000 -10.000000 1.000000
3 a 1.000000 10.000000 -1.000000
b 10.000000 100.000000 -10.000000
c -1.000000 -10.000000 1.000000
4 a 1.000000 10.000000 -1.000000
b 10.000000 100.000000 -10.000000
c -1.000000 -10.000000 1.000000
Пример
Рассмотрим вычисление скользящей ковариации между двумя рядами с использованием метода rolling, применённого к Series:
import pandas as pd
ser1 = pd.Series([1, 2, 3, 4, 5])
ser2 = pd.Series([10, 20, 30, 40, 50])
res = ser1.rolling(window=3).cov(ser2)
print(res)
Результат выполнения кода:
0 NaN
1 NaN
2 10.000000
3 10.000000
4 10.000000
dtype: float64