用法:
Rolling.corr(other=None, pairwise=None, ddof=1, **kwargs)
计算滚动相关性。
- other:Series 或 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
时,将仅使用self
和other
之间的匹配列。当
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
相关用法
- Python pandas.core.window.rolling.Rolling.count用法及代码示例
- Python pandas.core.window.rolling.Rolling.aggregate用法及代码示例
- Python pandas.core.window.rolling.Rolling.sum用法及代码示例
- Python pandas.core.window.rolling.Rolling.var用法及代码示例
- Python pandas.core.window.rolling.Rolling.quantile用法及代码示例
- Python pandas.core.window.rolling.Rolling.std用法及代码示例
- Python pandas.core.window.rolling.Rolling.median用法及代码示例
- Python pandas.core.window.rolling.Rolling.min用法及代码示例
- Python pandas.core.window.rolling.Rolling.sem用法及代码示例
- Python pandas.core.window.rolling.Rolling.mean用法及代码示例
- Python pandas.core.window.rolling.Rolling.kurt用法及代码示例
- Python pandas.core.window.rolling.Rolling.rank用法及代码示例
- Python pandas.core.window.rolling.Window.mean用法及代码示例
- Python pandas.core.window.rolling.Window.std用法及代码示例
- Python pandas.core.window.rolling.Window.sum用法及代码示例
- Python pandas.core.window.rolling.Window.var用法及代码示例
- Python pandas.core.window.expanding.Expanding.kurt用法及代码示例
- Python pandas.core.window.expanding.Expanding.sum用法及代码示例
- Python pandas.core.window.expanding.Expanding.median用法及代码示例
- Python pandas.core.window.expanding.Expanding.std用法及代码示例
注:本文由纯净天空筛选整理自pandas.pydata.org大神的英文原创作品 pandas.core.window.rolling.Rolling.corr。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。