pandas.core.window.rolling.Rolling.corr#
- Rolling.corr(other=None, pairwise=None, ddof=1, numeric_only=False)[源代码]#
计算滚动相关性。
- Parameters:
- otherSeries 或 DataFrame,可选
如果未提供,则默认为 self 并产生成对输出。
- pairwise布尔值,默认为 None
如果为 False,则仅使用 self 和 other 之间的匹配列,并且输出为 DataFrame。如果为 True,则计算所有成对组合,并且在输入为 DataFrame 时,输出为 MultiIndexed DataFrame。在缺失元素的情况下,仅使用完整的成对观测值。
- ddofint, 默认值 1
自由度增量。计算中使用的除数是
N - ddof,其中N表示元素数量。- numeric_onlybool,默认 False
仅包括浮点数、整数、布尔列。
在 1.5.0 版本加入.
- Returns:
- Series 或 DataFrame
返回类型与原始对象相同,并具有
np.float64数据类型。
参见
cov计算协方差的类似方法。
numpy.corrcoefNumPy Pearson 相关系数计算。
pandas.Series.rolling使用 Series 数据调用滚动。
pandas.DataFrame.rolling使用 DataFrame 调用滚动。
pandas.Series.corr聚合 Series 的相关系数。
pandas.DataFrame.corr聚合 DataFrame 的相关系数。
Notes
此函数使用 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 的列。
在缺失元素的情况下,将只使用完整的成对观测值。
Examples
下面的示例展示了一个窗口大小为四的滚动计算,这与使用
numpy.corrcoef()的等效函数调用相匹配。>>> v1 = [3, 3, 3, 5, 8] >>> v2 = [3, 4, 4, 4, 8] >>> np.corrcoef(v1[:-1], v2[:-1]) array([[1. , 0.33333333], [0.33333333, 1. ]]) >>> np.corrcoef(v1[1:], v2[1:]) array([[1. , 0.9169493], [0.9169493, 1. ]]) >>> 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.]]) >>> np.corrcoef(matrix[:-1, 0], matrix[:-1, 1]) array([[1. , 0.6263001], [0.6263001, 1. ]]) >>> np.corrcoef(matrix[1:, 0], matrix[1:, 1]) array([[1. , 0.55536811], [0.55536811, 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