pandas.core.groupby.DataFrameGroupBy.cov#
- property DataFrameGroupBy.cov#
计算列的成对协方差,不包括NA/NULL值。
计算数据帧序列之间的成对协方差。返回的数据框是 covariance matrix DataFrame的列的。
NA和空值都会自动从计算中排除。(请参见下面有关缺少值产生的偏移的注释。)可以为创建的每个值的最小观测次数设置阈值。低于此阈值的观测值的比较将返回为
NaN
。这种方法通常用于时间序列数据的分析,以了解不同度量之间跨时间的关系。
- 参数
- min_periods整型,可选
每对列获得有效结果所需的最小观测数。
- ddof整型,默认值为1
增量自由度。计算中使用的除数是
N - ddof
,在哪里N
表示元素的数量。1.1.0 新版功能.
- numeric_only布尔值,默认为True
仅包括 float , int 或 boolean 数据。
1.5.0 新版功能.
- 退货
- DataFrame
DataFrame序列的协方差矩阵。
参见
Series.cov
计算与另一系列的协方差。
core.window.ExponentialMovingWindow.cov
指数加权样本协方差。
core.window.Expanding.cov
扩大样本协方差。
core.window.Rolling.cov
滚动样本协方差。
注意事项
返回DataFrame的时间序列的协方差矩阵。用N-ddof对协方差进行归一化。
对于具有缺失数据的系列的DataFrame(假设数据为 missing at random )返回的协方差矩阵将是成员系列之间的方差和协方差的无偏估计。
然而,对于许多应用,这种估计可能是不可接受的,因为估计协方差矩阵不能保证是半正定的。这可能导致具有大于1的绝对值的估计相关性和/或不可逆的协方差矩阵。看见 Estimation of covariance matrices 了解更多详细信息。
示例
>>> 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