Skip to main content
`Ctrl`+`K`

# pandas.Series.corr

Series.corr(other, method='pearson', min_periods=None)

  Compute correlation with other Series, excluding missing values.

  The two Series objects are not required to be the same length and will be aligned internally before the correlation function is applied.

  Parameters:
    other Series

      Series with which to compute the correlation.

    method{‘pearson’, ‘kendall’, ‘spearman’} or callable

      Method used to compute correlation:

      - pearson : Standard correlation coefficient

      - kendall : Kendall Tau correlation coefficient

      - spearman : Spearman rank correlation

      - callable: Callable with input two 1d ndarrays and returning a float.

      Warning

      Note that the returned matrix from corr will have 1 along the diagonals and will be symmetric regardless of the callable’s behavior.

    min_periods int, optional

      Minimum number of observations needed to have a valid result.

  Returns:
    float

      Correlation with other.

  See also

  `DataFrame.corr`

    Compute pairwise correlation between columns.

  `DataFrame.corrwith`

    Compute pairwise correlation with another DataFrame or Series.

  Notes

  Pearson, Kendall and Spearman correlation are currently computed using pairwise complete observations.

  - Pearson correlation coefficient

  - Kendall rank correlation coefficient

  - Spearman’s rank correlation coefficient

  Automatic data alignment: as with all pandas operations, automatic data alignment is performed for this method. `corr()` automatically considers values with matching indices.

  Examples

      >>> 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 auto-aligns the values with matching indices

      >>> 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