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 이다.
두 상관 계수 모두 양의 값을 가지므로 이는 양 팀의 득점과 어시스트 간의 관계가 양의 관계임을 나타냅니다.
즉, 득점이 많은 선수일수록 어시스트도 더 많이 기록하는 경향이 있습니다.
관련 항목: “강한” 상관 관계로 간주되는 것은 무엇입니까?
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에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.
Pandas에서 GroupBy 합계를 수행하는 방법
Pandas에서 Groupby 및 Plot을 사용하는 방법
Pandas에서 GroupBy를 사용하여 고유한 값을 계산하는 방법