当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python pandas.core.window.rolling.Rolling.corr用法及代码示例


用法:

Rolling.corr(other=None, pairwise=None, ddof=1, **kwargs)

计算滚动相关性。

参数

otherSeries 或 DataFrame,可选

如果未提供,则默认为 self 并产生成对输出。

pairwise布尔值,默认无

如果为 False,则仅使用 self 和 other 之间的匹配列,并且输出将是 DataFrame。如果为 True,则将计算所有成对组合,并且在 DataFrame 输入的情况下,输出将是 MultiIndexed DataFrame。在缺少元素的情况下,将仅使用完整的成对观察。

ddof整数,默认 1

Delta 自由度。计算中使用的除数是 N - ddof ,其中 N 表示元素的数量。

**kwargs

为了 NumPy 的兼容性,不会对结果产生影响。

返回

Series或DataFrame

返回类型与 np.float64 dtype 的原始对象相同。

注意

该函数使用 Pearson 的相关性定义 (https://en.wikipedia.org/wiki/Pearson_correlation_coefficient)。

other 未指定时,输出将为自相关(例如全 1),但 DataFrame 输入除外,其中 pairwise 设置为 True

函数将为等值序列的相关性返回NaN;这是 0/0 除法错误的结果。

pairwise 设置为 False 时,将仅使用 selfother 之间的匹配列。

pairwise 设置为 True 时,输出将是一个 MultiIndex DataFrame,其中原始索引位于第一级,other DataFrame 列位于第二级。

在缺少元素的情况下,将仅使用完整的成对观察。

例子

下面的示例显示了一个滚动计算,其窗口大小为 4,与使用 numpy.corrcoef() 的等效函数调用匹配。

>>> v1 = [3, 3, 3, 5, 8]
>>> v2 = [3, 4, 4, 4, 8]
>>> # numpy returns a 2X2 array, the correlation coefficient
>>> # is the number at entry [0][1]
>>> print(f"{np.corrcoef(v1[:-1], v2[:-1])[0][1]:.6f}")
0.333333
>>> print(f"{np.corrcoef(v1[1:], v2[1:])[0][1]:.6f}")
0.916949
>>> s1 = pd.Series(v1)
>>> s2 = pd.Series(v2)
>>> s1.rolling(4).corr(s2)
0         NaN
1         NaN
2         NaN
3    0.333333
4    0.916949
dtype:float64

下面的示例显示了使用 pairwise 选项对 DataFrame 进行类似的滚动计算。

>>> matrix = np.array([[51., 35.], [49., 30.], [47., 32.],        [46., 31.], [50., 36.]])
>>> print(np.corrcoef(matrix[:-1,0], matrix[:-1,1]).round(7))
[[1.         0.6263001]
 [0.6263001  1.       ]]
>>> print(np.corrcoef(matrix[1:,0], matrix[1:,1]).round(7))
[[1.         0.5553681]
 [0.5553681  1.        ]]
>>> df = pd.DataFrame(matrix, columns=['X','Y'])
>>> df
      X     Y
0  51.0  35.0
1  49.0  30.0
2  47.0  32.0
3  46.0  31.0
4  50.0  36.0
>>> df.rolling(4).corr(pairwise=True)
            X         Y
0 X       NaN       NaN
  Y       NaN       NaN
1 X       NaN       NaN
  Y       NaN       NaN
2 X       NaN       NaN
  Y       NaN       NaN
3 X  1.000000  0.626300
  Y  0.626300  1.000000
4 X  1.000000  0.555368
  Y  0.555368  1.000000

相关用法


注:本文由纯净天空筛选整理自pandas.pydata.org大神的英文原创作品 pandas.core.window.rolling.Rolling.corr。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。