Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Pandas DataFrame에서 두 숫자 열 간의 상관계수 계산하기

상관관계란 무엇인가?

pandas.DataFrame.corr 메서드를 사용하면 NULL 값을 제외한 상태에서 열들 간의 쌍별(pairwise) 상관관계를 손쉽게 계산할 수 있습니다. 상관계수는 두 변수 사이의 선형 관계가 얼마나 강한지를 나타내는 지표이며, 그 값은 항상 -1부터 1 사이에 위치합니다.

값이 1에 가까울수록 강한 양의 선형 관계를, -1에 가까울수록 강한 음의 선형 관계를 의미합니다. 반대로 0에 가깝다면 두 변수 사이에 선형 관계가 거의 없다는 뜻입니다.

구현 절차

Pandas 데이터프레임에서 두 숫자 열 사이의 상관관계를 구하려면 다음 단계를 따르면 됩니다.

  • 그림(figure) 크기를 설정하고 서브플롯 주변 및 사이의 여백(padding)을 조정합니다.
  • 2차원이며 크기가 가변적이고 잠재적으로 이질적인(heterogeneous) 표 형태의 데이터를 담는 Pandas 데이터프레임을 생성합니다.
  • 두 열의 값을 비교하고 col1.corr(col2)를 호출하여 상관계수를 계산합니다.
  • 계산된 상관계수를 콘솔에 출력합니다.
  • show() 메서드를 사용해 그래프를 화면에 표시합니다.

예제 코드

import pandas as pd
from matplotlib import pyplot as plt

plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True

df = pd.DataFrame({'lab': [1, 2, 3], 'value': [3, 4, 5]})

col1 = df['lab']
col2 = df['value']

plt.plot(col1, col2)

print("The correlation coefficient is: ", col1.corr(col2))

plt.show()

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

The correlation coefficient is: 1.0

Pandas DataFrame에서 두 숫자 열 간의 상관계수 계산하기Pandas DataFrame에서 두 숫자 열 간의 상관계수 계산하기

결과 해석

이 예제에서 상관계수는 1.0으로 나타났습니다. 이는 두 열이 완전한(perfect) 양의 상관관계를 가진다는 의미입니다. 실제로 모든 데이터 포인트가 하나의 직선 위에 정확히 놓여 있기 때문에, 그려진 그래프 역시 곧은 직선 형태로 표현됩니다.