여러 열의 데이터를 그룹핑하여 박스플롯(boxplot)으로 그리는 방법을 pandas
와 seaborn
라이브러리를 사용하여 설명하겠습니다.
라이브러리 임포트
먼저, 필요한 라이브러리를 임포트합니다.
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()
출력 결과
위 그래프는 Category
를 기준으로 Value1
, Value2
, Value3
세 가지 변수에 대한 박스플롯을 그렸습니다. hue
옵션을 사용하여 Variable
열에 따라 색상을 다르게 설정하였습니다. 이렇게 함으로써 여러 열의 데이터를 그룹핑하여 시각화할 수 있습니다.