Pandas에서 그룹별 상관관계를 계산하는 방법


다음 기본 구문을 사용하여 팬더에서 그룹별로 두 변수 간의 상관 관계를 계산할 수 있습니다.

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

다음 예에서는 실제로 이 구문을 사용하는 방법을 보여줍니다.

예: Pandas에서 그룹별 상관관계 계산

다음과 같은 팬더 DataFrame이 있다고 가정합니다.

 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

결과에서 우리는 다음을 볼 수 있습니다:

  • A팀의 포인트와 어시스트의 상관계수는 0.603053 이다.
  • B팀의 포인트와 어시스트의 상관계수는 0.981798 이다.

두 상관 계수 모두 양의 값을 가지므로 이는 양 팀의 득점과 어시스트 간의 관계가 양의 관계임을 나타냅니다.

즉, 득점이 많은 선수일수록 어시스트도 더 많이 기록하는 경향이 있습니다.

관련 항목: “강한” 상관 관계로 간주되는 것은 무엇입니까?

unstackiloc 함수를 사용하지 않음으로써 구문을 단축할 수 있지만 결과는 더 좋지 않습니다.

 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에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

Pandas에서 GroupBy 합계를 수행하는 방법
Pandas에서 Groupby 및 Plot을 사용하는 방법
Pandas에서 GroupBy를 사용하여 고유한 값을 계산하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다