当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python pandas.DataFrame.cov用法及代码示例


用法:

DataFrame.cov(min_periods=None, ddof=1)

计算列的成对协方差,不包括 NA/null 值。

计算数据帧系列之间的成对协方差。返回的 DataFrame 是 DataFrame 列的协方差矩阵。

NA 和 null 值都会自动从计算中排除。 (请参阅下面关于缺失值偏差的注释。)可以为创建的每个值的最小观察次数设置阈值。与低于此阈值的观察结果的比较将返回为 NaN

这种方法一般用于时间序列数据的分析,以了解不同测度在时间上的关系。

参数

min_periods整数,可选

每对列所需的最小观察次数以获得有效结果。

ddof整数,默认 1

Delta 自由度。计算中使用的除数是 N - ddof ,其中 N 表示元素的数量。

返回

DataFrame

DataFrame 系列的协方差矩阵。

注意

返回 DataFrame 时间序列的协方差矩阵。协方差由N-ddof 归一化。

对于具有缺失数据的 Series 的 DataFrame(假设数据随机缺失),返回的协方差矩阵将是成员 Series 之间的方差和协方差的无偏估计。

但是,对于许多应用程序,此估计可能不可接受,因为估计协方差矩阵不能保证为正semi-definite。这可能导致估计具有大于一的绝对值的相关性,和/或不可逆的协方差矩阵。有关更多详细信息,请参阅协方差矩阵的估计。

例子

>>> 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

相关用法


注:本文由纯净天空筛选整理自pandas.pydata.org大神的英文原创作品 pandas.DataFrame.cov。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。