DataFrame.cov(min_periods=None)
计算列的成对协方差,不包括NA/null值。
计算DataFrame
系列之间的成对协方差。返回的数据帧是DataFrame
列的协方差矩阵。
NA和空值都会自动从计算中排除。(请参阅下面的注释,了解缺失值的偏差。)可以为创建的每个值的最小观察数设置阈值。与低于此阈值的观察结果的比较将返回为NaN。
该方法通常用于分析时间序列数据,以了解不同度量之间的关系。
参数: | min_periods : 每对列所需的最小观察数,以获得有效结果。 |
返回: | DataFrame DataFrame series的协方差矩阵。 |
Notes
返回DataFrame时间序列的协方差矩阵。协方差由N-1归一化。
对于具有丢失数据的Series的DataFrame(假设数据随机丢失),返回的协方差矩阵将是成员Series之间的方差和协方差的无偏估计。
然而,对于许多应用,这种估计可能是不可接受的,因为估计协方差矩阵不能保证是正半正定的。这可能导致具有大于1的绝对值的估计相关性和/或不可逆协方差矩阵。有关更多详细信息,请参阅协方差矩阵的估计。
例子
>>> 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