dask.dataframe.DataFrame.cov
dask.dataframe.DataFrame.cov¶
- DataFrame.cov(min_periods=None, numeric_only=_NoDefault.no_default, split_every=False)[源代码]¶
计算列之间的成对协方差,排除NA/空值。
此文档字符串是从 pandas.core.frame.DataFrame.cov 复制的。
Dask 版本可能存在一些不一致性。
计算 DataFrame 中各系列之间的成对协方差。返回的 DataFrame 是 DataFrame 列的 协方差矩阵。
NA 和 null 值会自动从计算中排除。(参见下面关于缺失值偏差的注释。)可以为每个创建的值设置最小观察数阈值。与低于此阈值的观察值的比较将返回为
NaN
。此方法通常用于时间序列数据的分析,以理解不同测量值随时间的关系。
- 参数
- min_periodsint, 可选
每对列所需的最小观测数,以获得有效结果。
- ddofint, 默认值为 1 (Dask 中不支持)
自由度的增量。计算中使用的除数是
N - ddof
,其中N
表示元素的数量。此参数仅在数据框中没有nan
时适用。- 仅数值bool, 默认 False
只包含 float、int 或 boolean 数据。
1.5.0 新版功能.
在 2.0.0 版更改:
numeric_only
的默认值现在是False
。
- 返回
- DataFrame
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