pandas.DataFrame.cov # 数据框。cov ( min_periods = None , ddof = 1 , numeric_only = False ) [来源] # 计算列的成对协方差,不包括 NA/null 值。 计算 DataFrame 系列之间的成对协方差。返回的数据帧是DataFrame 列的协方差矩阵。 NA 和空值都会自动从计算中排除。 (请参阅下面有关缺失值偏差的注释。)可以为创建的每个值的最小观测数设置阈值。与低于此阈值的观测值的比较将返回为NaN。 该方法通常用于时间序列数据的分析,以了解不同度量之间跨时间的关系。 参数: min_periods int,可选为了获得有效结果,每对列所需的最小观察次数。 ddof int,默认1Delta 自由度。计算中使用的除数是,其中表示元素的数量。该参数仅当数据框中没有时才适用。N - ddofNnan numeric_only布尔值,默认 False仅包含float、int或boolean数据。 1.5.0 版本中的新增内容。 版本 2.0.0 中更改:默认值为numeric_onlynow False。 返回: 数据框DataFrame 系列的协方差矩阵。 也可以看看 Series.cov计算与另一个系列的协方差。 core.window.ewm.ExponentialMovingWindow.cov指数加权样本协方差。 core.window.expanding.Expanding.cov扩大样本协方差。 core.window.rolling.Rolling.cov滚动样本协方差。 笔记 返回 DataFrame 时间序列的协方差矩阵。协方差由 N-ddof 归一化。 对于具有缺失数据的 Series 的 DataFrame(假设数据随机缺失),返回的协方差矩阵将是成员 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