當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。