Как рассчитать корреляцию по группам в pandas


Вы можете использовать следующий базовый синтаксис для расчета корреляции между двумя переменными по группам в pandas:

 df. groupby (' group_var ')[[' values1 ',' values2 ']]. corr (). unstack (). iloc [:, 1 ]

В следующем примере показано, как использовать этот синтаксис на практике.

Пример: рассчитать корреляцию по группам в Pandas

Предположим, у нас есть следующий DataFrame pandas:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' points ': [18, 22, 19, 14, 14, 11, 20, 28],
                   ' assists ': [2, 7, 9, 3, 12, 10, 14, 21]})

#view DataFrame
print (df)

Мы можем использовать следующий код для расчета корреляции между очками и передачами , сгруппированными по командам :

 #calculate correlation between points and assists, grouped by team
df. groupby (' team ')[[' points ',' assists ']]. corr (). unstack (). iloc [:, 1 ]

team
At 0.603053
B 0.981798
Name: (points, assists), dtype: float64

По результату мы видим:

  • Коэффициент корреляции между очками и передачами для Команды А составляет 0,603053 .
  • Коэффициент корреляции между очками и передачами для Команды Б составляет 0,981798 .

Поскольку оба коэффициента корреляции положительны, это говорит нам о том, что связь между очками и передачами у обеих команд положительная.

То есть игроки, которые склонны набирать больше очков, также склонны делать больше результативных передач.

Связанный: Что считается «сильной» корреляцией?

Обратите внимание, что мы могли бы сократить синтаксис, не используя функции unstack и iloc , но результат будет уродливее:

 df. groupby (' team ')[[' points ',' assists ']]. corr ()

		assist points
team			
A points 1.000000 0.603053
        assists 0.603053 1.000000
B points 1.000000 0.981798
        assists 0.981798 1.000000

Этот синтаксис создает матрицу корреляции для обеих команд, что дает нам избыточную информацию.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции в pandas:

Как выполнить сумму GroupBy в Pandas
Как использовать Groupby и Plot в Pandas
Как посчитать уникальные значения с помощью GroupBy в Pandas

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *