데이터 분석/Python - pandas
[실습] 데이터 시각화 : 특수 그래프
toraa
2025. 1. 13. 15:47
국민건강보험공단_건강검진정보(샘플).csv 파일에서 다음 작업을 진행
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
plt.rc('font', family='Malgun Gothic')
df = pd.read_csv('./data/국민건강보험공단_건강검진정보(샘플).csv', index_col = 0)
1. '수축기혈압'의 히스토그램을 그리기
plt.figure(figsize=(6,4))
ax = plt.subplot()
ax.hist(df['수축기혈압'])
plt.show()
풀이>
plt.figure(figsize=(6,4))
ax = plt.subplot()
ax.hist(df['수축기혈압'], bins=30)
plt.show()
bins설정해줌
2. '연령대코드(5세단위)'와 '흡연상태'로 그룹화 하여 '수축기혈압'의 평균을 피벗테이블로 생성,
3. 2번 결과에서 히트맵 그리기
내 코드>
pivot = pd.pivot_table(df,
index='연령대코드(5세단위)',
columns='흡연상태',
values='수축기혈압',
aggfunc='mean')
plt.figure(figsize=(7,7))
ax = plt.subplot()
sns.heatmap(pivot, cmap='YIGnBu', annot=True, fmt='.2f', ax=ax)
plt.show()
풀이>
pivot = pd.pivot_table(df, index='연령대코드(5세단위)', columns='흡연상태',
values='수축기혈압', aggfunc='mean')
pivot = pivot.reindex(['비흡연','금연','흡연'], axis = 1)
plt.figure(figsize=(6,5))
ax = plt.subplot()
sns.heatmap(pivot, cmap='YlGnBu', annot=True, fmt='.2f', ax=ax)
plt.show()
▷ reindex를 사용하여 컬럼이나 인덱스를 재정렬할 수 있음
▷ axis 설정해주는 것 습관화해주면 좋음
▷ pivot을 heatmap에 넣어주기만 하면 된다
4. 기존 데이터에서 '혈색소'를 '흡연상태'별로 색상을 나누어 상자그림 그리기
plt.figure(figsize=(6,6))
ax = plt.subplot()
sns.boxplot(df, y='혈색소', x='흡연상태')
plt.show()
흡연상태에 따라 각각 boxplot을 그리고 싶을 때, x에 '흡연상태'를 넣어주면 됨