Pandas 상관 관계 매트릭스

Suraj Joshi 2023년1월30일
  1. DataFrame.corr()메서드를 사용하여 상관 행렬 생성
  2. Matplotlib.pyplot.matshow()메서드를 사용하여 Pandas 상관 행렬 시각화
  3. seaborn.heatmap()메서드를 사용하여 Pandas 상관 행렬 시각화
  4. DataFrame.style 속성을 사용하여 상관 행렬 시각화
Pandas 상관 관계 매트릭스

이 튜토리얼에서는DataFrame.corr()메서드를 사용하여 상관 행렬을 생성하고 Matplotlib에서pyplot.matshow()메서드를 사용하여 상관 행렬을 시각화하는 방법을 설명합니다.

import pandas as pd

employees_df = pd.DataFrame(
    {
        "Name": ["Jonathan", "Will", "Michael", "Liva", "Sia", "Alice"],
        "Age": [20, 22, 29, 20, 20, 21],
        "Weight(KG)": [65, 75, 80, 60, 63, 70],
        "Height(meters)": [1.6, 1.7, 1.85, 1.69, 1.8, 1.75],
        "Salary($)": [3200, 3500, 4000, 2090, 2500, 3600],
    }
)

print(employees_df, "\n")

출력:

       Name  Age  Weight(KG)  Height(meters)  Salary($)
0  Jonathan   20          65            1.60       3200
1      Will   22          75            1.70       3500
2   Michael   29          80            1.85       4000
3      Liva   20          60            1.69       2090
4       Sia   20          63            1.80       2500
5     Alice   21          70            1.75       3600

DataFrame employees_df를 사용하여 상관 행렬을 생성하고 시각화하는 방법을 설명합니다.

DataFrame.corr()메서드를 사용하여 상관 행렬 생성

import pandas as pd

employees_df = pd.DataFrame(
    {
        "Name": ["Jonathan", "Will", "Michael", "Liva", "Sia", "Alice"],
        "Age": [20, 22, 29, 20, 20, 21],
        "Weight(KG)": [65, 75, 80, 60, 63, 70],
        "Height(meters)": [1.6, 1.7, 1.85, 1.69, 1.8, 1.75],
        "Salary($)": [3200, 3500, 4000, 2090, 2500, 3600],
    }
)

print("The DataFrame of Employees is:")
print(employees_df, "\n")

corr_df = employees_df.corr()
print("The correlation DataFrame is:")
print(corr_df, "\n")

출력:

The DataFrame of Employees is:
       Name  Age  Weight(KG)  Height(meters)  Salary($)
0  Jonathan   20          65            1.60       3200
1      Will   22          75            1.70       3500
2   Michael   29          80            1.85       4000
3      Liva   20          60            1.69       2090
4       Sia   20          63            1.80       2500
5     Alice   21          70            1.75       3600

The correlation DataFrame is:
                     Age  Weight(KG)  Height(meters)  Salary($)
Age             1.000000    0.848959        0.655252   0.695206
Weight(KG)      0.848959    1.000000        0.480998   0.914861
Height(meters)  0.655252    0.480998        1.000000   0.285423
Salary($)       0.695206    0.914861        0.285423   1.000000

DataFrame의 다른 모든 열과 각 열 간의 상관 관계 값이있는 DataFrame을 생성합니다.

상관 값은 숫자 값이있는 열 사이에서만 계산됩니다. 기본적으로corr()메서드는Pearson 메서드를 사용하여 상관 계수를 계산합니다. 또한 Kendallspearman과 같은 다른 방법을 사용하여 corr방법에 method매개 변수 값을 지정하여 상관 계수를 계산할 수 있습니다.

Matplotlib.pyplot.matshow()메서드를 사용하여 Pandas 상관 행렬 시각화

import pandas as pd
import matplotlib.pyplot as plt

employees_df = pd.DataFrame(
    {
        "Name": ["Jonathan", "Will", "Michael", "Liva", "Sia", "Alice"],
        "Age": [20, 22, 29, 20, 20, 21],
        "Weight(KG)": [65, 75, 80, 60, 63, 70],
        "Height(meters)": [1.6, 1.7, 1.85, 1.69, 1.8, 1.75],
        "Salary($)": [3200, 3500, 4000, 2090, 2500, 3600],
    }
)

corr_df = employees_df.corr(method="pearson")

plt.matshow(corr_df)
plt.show()

출력:

matshow 방법을 사용하여 상관 행렬 시각화

Matplotlib.pyplot 패키지의matshow()함수를 사용하여employees_df DataFrame에서 생성 된 상관 행렬을 플로팅합니다.

seaborn.heatmap()메서드를 사용하여 Pandas 상관 행렬 시각화

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

employees_df = pd.DataFrame(
    {
        "Name": ["Jonathan", "Will", "Michael", "Liva", "Sia", "Alice"],
        "Age": [20, 22, 29, 20, 20, 21],
        "Weight(KG)": [65, 75, 80, 60, 63, 70],
        "Height(meters)": [1.6, 1.7, 1.85, 1.69, 1.8, 1.75],
        "Salary($)": [3200, 3500, 4000, 2090, 2500, 3600],
    }
)

corr_df = employees_df.corr(method="pearson")

plt.figure(figsize=(8, 6))
sns.heatmap(corr_df, annot=True)
plt.show()

출력:

seaborn의 히트 맵 방법을 사용하여 상관 행렬 시각화

seaborn 패키지의heatmap()함수를 사용하여employees_df DataFrame에서 생성 된 상관 행렬을 플로팅합니다.

DataFrame.style 속성을 사용하여 상관 행렬 시각화

import pandas as pd

employees_df = pd.DataFrame(
    {
        "Name": ["Jonathan", "Will", "Michael", "Liva", "Sia", "Alice"],
        "Age": [20, 22, 29, 20, 20, 21],
        "Weight(KG)": [65, 75, 80, 60, 63, 70],
        "Height(meters)": [1.6, 1.7, 1.85, 1.69, 1.8, 1.75],
        "Salary($)": [3200, 3500, 4000, 2090, 2500, 3600],
    }
)

corr_df = employees_df.corr(method="pearson")

corr_df.style.background_gradient(cmap="coolwarm")

출력:

DataFrame 객체의 스타일 속성을 사용하여 상관 행렬 시각화

corr_df DataFrame 객체의style 속성은Styler 객체를 반환합니다. Styler 객체에background_gradient를 사용하여 DataFrame 객체를 시각화 할 수 있습니다.

이 방법은IPython 노트북에서만 수치를 생성 할 수 있습니다.

작가: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn