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.