DataFrame.corr() / Series.corr()

Метод corr() вычисляет попарные коэффициенты корреляции между столбцами DataFrame или между двумя Series. Поддерживает методы Пирсона, Спирмена и Кендалла.

Сигнатура

DataFrame.corr(method="pearson", min_periods=1, numeric_only=False)
Series.corr(other, method="pearson", min_periods=None)

Параметры

  • method — "pearson" (default), "spearman" или "kendall".

  • min_periods — минимальное число валидных пар для вычисления.

  • numeric_only — если True, использовать только числовые столбцы.

Возвращаемое значение

DataFrame корреляционной матрицы или скаляр (для пары Series).

Примеры

Пример 1. Матрица корреляций

import pandas as pd

df = pd.DataFrame({
    "a": [1, 2, 3, 4, 5],
    "b": [2, 4, 6, 8, 10],
    "c": [5, 3, 6, 2, 1],
})
print(df.corr().round(2))
      a     b     c
a  1.00  1.00 -0.82
b  1.00  1.00 -0.82
c -0.82 -0.82  1.00

Пример 2. Корреляция показаний датчиков

Температура и влажность с DHT22:

import pandas as pd

df = pd.DataFrame({
    "temp":     [22.0, 23.0, 24.0, 25.0],
    "humidity": [60,   58,   55,   53],
})
print(df["temp"].corr(df["humidity"]).round(3))
-0.997

Пример 3. Метод Спирмена

import pandas as pd

df = pd.DataFrame({"x": [1, 2, 3, 4], "y": [10, 100, 1000, 10000]})
print(df.corr(method="spearman"))
     x    y
x  1.0  1.0
y  1.0  1.0

Пример 4. Метод Кендалла

import pandas as pd

df = pd.DataFrame({"a": [1, 2, 3, 4], "b": [4, 3, 2, 1]})
print(df.corr(method="kendall"))
     a    b
a  1.0 -1.0
b -1.0  1.0

Пример 5. Игнорирование нечисловых столбцов

import pandas as pd

df = pd.DataFrame({"x": [1, 2, 3], "y": [2, 4, 6], "name": ["a", "b", "c"]})
print(df.corr(numeric_only=True))
     x    y
x  1.0  1.0
y  1.0  1.0

См. также

Примечание

Лицензия и источники

Техническое описание функции адаптировано из официальной документации Pandas (https://pandas.pydata.org/docs/), BSD-3-Clause License. Примеры и пояснения — © AlashEd Wiki.