pandas.DataFrame.cov#

DataFrame.cov(min_periods=None, ddof=1, numeric_only=False)[источник]#

Вычислить попарную ковариацию столбцов, исключая значения NA/null.

Вычислите попарную ковариацию между рядами DataFrame. Возвращаемый датафрейм - это ковариационная матрица столбцов DataFrame.

И значения NA, и нулевые значения автоматически исключаются из расчёта. (См. примечание ниже о смещении из-за пропущенных значений.) Можно установить порог для минимального количества наблюдений для каждого созданного значения. Сравнения с наблюдениями ниже этого порога будут возвращены как NaN.

Этот метод обычно используется для анализа данных временных рядов, чтобы понять взаимосвязь между различными показателями во времени.

Параметры:
min_periodsint, необязательный

Минимальное количество наблюдений, требуемое для каждой пары столбцов, чтобы получить допустимый результат.

ddofint, по умолчанию 1

Дельта степеней свободы. Делитель, используемый в вычислениях, равен N - ddof, где N представляет количество элементов. Этот аргумент применим только когда нет nan находится в датафрейме.

numeric_onlybool, по умолчанию False

Включите только float, int или логический data.

Добавлено в версии 1.5.0.

Изменено в версии 2.0.0: Значение по умолчанию для numeric_only теперь False.

Возвращает:
DataFrame

Ковариационная матрица серии DataFrame.

Смотрите также

Series.cov

Вычислить ковариацию с другой Series.

core.window.ewm.ExponentialMovingWindow.cov

Экспоненциально взвешенная выборочная ковариация.

core.window.expanding.Expanding.cov

Расширяющаяся выборочная ковариация.

core.window.rolling.Rolling.cov

Скользящая выборочная ковариация.

Примечания

Возвращает ковариационную матрицу временного ряда DataFrame. Ковариация нормируется на N-ddof.

Для DataFrame, содержащих Series с отсутствующими данными (предполагая, что данные пропущенные случайным образом) возвращаемая ковариационная матрица будет несмещенной оценкой дисперсии и ковариации между членами Series.

Однако для многих приложений эта оценка может быть неприемлемой, поскольку оценочная ковариационная матрица не гарантированно является положительно полуопределённой. Это может привести к тому, что оценочные корреляции будут иметь абсолютные значения больше единицы и/или необратимую ковариационную матрицу. См. Оценка ковариационных матриц для получения дополнительной информации.

Примеры

>>> df = pd.DataFrame([(1, 2), (0, 3), (2, 0), (1, 1)],
...                   columns=['dogs', 'cats'])
>>> df.cov()
          dogs      cats
dogs  0.666667 -1.000000
cats -1.000000  1.666667
>>> np.random.seed(42)
>>> df = pd.DataFrame(np.random.randn(1000, 5),
...                   columns=['a', 'b', 'c', 'd', 'e'])
>>> df.cov()
          a         b         c         d         e
a  0.998438 -0.020161  0.059277 -0.008943  0.014144
b -0.020161  1.059352 -0.008543 -0.024738  0.009826
c  0.059277 -0.008543  1.010670 -0.001486 -0.000271
d -0.008943 -0.024738 -0.001486  0.921297 -0.013692
e  0.014144  0.009826 -0.000271 -0.013692  0.977795

Минимальное количество периодов

Этот метод также поддерживает необязательный min_periods ключевое слово которое указывает минимальное требуемое количество не-NA наблюдений для каждой пары столбцов, чтобы получить корректный результат:

>>> np.random.seed(42)
>>> df = pd.DataFrame(np.random.randn(20, 3),
...                   columns=['a', 'b', 'c'])
>>> df.loc[df.index[:5], 'a'] = np.nan
>>> df.loc[df.index[5:10], 'b'] = np.nan
>>> df.cov(min_periods=12)
          a         b         c
a  0.316741       NaN -0.150812
b       NaN  1.248003  0.191417
c -0.150812  0.191417  0.895202