[Python] 17. 여러 열의 데이터를 그룹핑하여 boxplot 그리는 방법

여러 열의 데이터를 그룹핑하여 박스플롯(boxplot)으로 그리는 방법을 pandasseaborn 라이브러리를 사용하여 설명하겠습니다.

라이브러리 임포트

먼저, 필요한 라이브러리를 임포트합니다.

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

예제 데이터 생성

이제 예제 데이터를 생성하고 박스플롯(boxplot)을 그리는 방법을 설명하겠습니다.

data = {
    'Category': ['A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'],
    'Value1': [10, 15, 20, 25, 30, 35, 40, 45, 50],
    'Value2': [5, 10, 15, 20, 25, 30, 35, 40, 45],
    'Value3': [2, 4, 6, 8, 10, 12, 14, 16, 18]
}

df = pd.DataFrame(data)
print(df)

출력 결과

  Category  Value1  Value2  Value3
0        A      10       5       2
1        A      15      10       4
2        A      20      15       6
3        B      25      20       8
4        B      30      25      10
5        B      35      30      12
6        C      40      35      14
7        C      45      40      16
8        C      50      45      18

데이터프레임을 그룹핑하기

데이터프레임 df에는 Category, Value1, Value2, Value3라는 열이 있습니다.
이제 melt 함수를 사용하여 데이터를 그룹핑하고 hue 옵션을 사용하여 박스플롯을 그립니다.

# 데이터프레임을 melt하여 데이터 그룹핑
melted_df = df.melt(id_vars='Category', var_name='Variable', value_name='Value')
print(melted_df)

출력 결과

  Category Variable  Value
0        A   Value1     10
1        A   Value1     15
2        A   Value1     20
3        B   Value1     25
4        B   Value1     30
5        B   Value1     35
6        C   Value1     40
7        C   Value1     45
8        C   Value1     50
0        A   Value2      5
1        A   Value2     10
2        A   Value2     15
3        B   Value2     20
4        B   Value2     25
5        B   Value2     30
6        C   Value2     35
7        C   Value2     40
8        C   Value2     45
0        A   Value3      2
1        A   Value3      4
2        A   Value3      6
3        B   Value3      8
4        B   Value3     10
5        B   Value3     12
6        C   Value3     14
7        C   Value3     16
8        C   Value3     18

melted_df에는 Category, Variable, Value라는 열이 있으며, Variable 열에는 원래의 Value1, Value2, Value3 열이 포함됩니다.

박스플롯(boxplot) 그리기

이제 seaborn의 boxplot 함수를 사용하여 박스플롯을 그립니다.

# 박스플롯 그리기
sns.boxplot(data=melted_df, x='Category', y='Value', hue='Variable')
plt.show()

출력 결과

여러 열의 데이터를 그룹핑하여 그린 boxplot 출력 결과

위 그래프는 Category를 기준으로 Value1, Value2, Value3 세 가지 변수에 대한 박스플롯을 그렸습니다.
hue 옵션을 사용하여 Variable 열에 따라 색상을 다르게 설정하였습니다. 이렇게 함으로써 여러 열의 데이터를 그룹핑하여 시각화할 수 있습니다.

댓글 달기

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

위로 스크롤