pandas.Series.corr#

Series.corr(other, method='pearson', min_periods=None)[源代码][源代码]#

计算与 other Series 的相关性,排除缺失值。

这两个 Series 对象不需要长度相同,在应用相关函数之前会在内部对齐。

参数:
其他系列

用于计算相关性的序列。

方法{‘pearson’, ‘kendall’, ‘spearman’} 或可调用

用于计算相关性的方法:

  • pearson : 标准相关系数

  • kendall : Kendall Tau 相关系数

  • spearman : Spearman 等级相关

  • callable: 可调用对象,输入两个一维 ndarrays 并返回一个浮点数。

警告

请注意,从 corr 返回的矩阵将对角线上的值为 1,并且无论可调用对象的行为如何,都将是对称的。

min_periodsint, 可选

需要的最小观测数以获得有效结果。

返回:
float

与其他相关。

参见

DataFrame.corr

计算列之间的成对相关性。

DataFrame.corrwith

计算与另一个 DataFrame 或 Series 的成对相关性。

备注

Pearson、Kendall 和 Spearman 相关性目前使用成对完整观测值计算。

自动数据对齐:与所有 pandas 操作一样,此方法会自动执行数据对齐。corr() 方法会自动考虑具有匹配索引的值。

示例

>>> def histogram_intersection(a, b):
...     v = np.minimum(a, b).sum().round(decimals=1)
...     return v
>>> s1 = pd.Series([0.2, 0.0, 0.6, 0.2])
>>> s2 = pd.Series([0.3, 0.6, 0.0, 0.1])
>>> s1.corr(s2, method=histogram_intersection)
0.3

Pandas 会自动对齐具有匹配索引的值

>>> s1 = pd.Series([1, 2, 3], index=[0, 1, 2])
>>> s2 = pd.Series([1, 2, 3], index=[2, 1, 0])
>>> s1.corr(s2)
-1.0

If the input is a constant array, the correlation is not defined in this case, and np.nan is returned.

>>> s1 = pd.Series([0.45, 0.45])
>>> s1.corr(s1)
nan