# 한글폰트 설정
import os
# macos인 경우 'posix'을 입력
if os.name == 'posix':
plt.rc("font", family="AppleGothic")
# 마이너스 폰트 깨지는 문제에 대한 대처
plt.rc("axes", unicode_minus=False)
# 폰트가 흐릿하게 보이는 것을 방지
%config InlineBackend.figure_format = 'retina'
# 한글폰트 사용을 위해 설치
# 아래 모듈을 설치하고 불러오면 별도의 한글폰트 설정이 필요 없습니다.
!pip install koreanize-matplotlib
import koreanize_matplotlib
데이터 요약하기
데이터 결측치 확인하기
# isnull
df.isnull().sum()
# isna
df.isna().sum()
df.isnull().sum().plot.barh(figsize=(10,8))
# 성별코드에 따른 음주 상태
df.groupby(by=['성별코드','음주여부'])['가입자일련번호'].count()
# 성별코드와 음주여부에 따른 간수치지수 개수,평균,중앙값
df.groupby(by=['성별코드', '음주여부'])['감마지티피'].agg(['count', 'mean', 'median'])
df.pivot_table(index='성별코드', values='가입자일련번호', aggfunc='count')
pd.pivot_table(df, index=["음주여부", "성별코드"], values="감마지티피", aggfunc="describe")
h = df.hist(figsize=(18,18))
# 12개의 컬럼의 데이터만 히스토그램 그리기
h = df.iloc[:, :12].hist(figsize=(12,12))
# hue를 활용하여 "성별코드"를 같이 나타내기
sns.countplot(x='음주여부', data=df, hue='성별코드')
plt.figure(figsize=(25,6))
sns.countplot(data=df, x='신장(5Cm단위)', hue='성별코드')
plt.figure(figsize=(30,10))
sns.countplot(data=df, x='체중(5Kg 단위)', hue='성별코드')
# 음주여부 = {0.0: 마시지 않는다, 1.0: 마신다}
plt.figure(figsize=(15,9))
sns.barplot(data=df_sample, x='연령대코드(5세단위)', y='총콜레스테롤', hue='음주여부')
# 흡연상태 = {1.0:피우지않는다, 2.0:이전에 피웠으나 끊음, 3.0:현재 피우고 있다}
plt.figure(figsize=(15,9))
sns.barplot(data=df_sample, x='연령대코드(5세단위)', y='총콜레스테롤', hue='흡연상태')
lineplot
plt.figure(figsize=(15,9))
sns.barplot(data=df_sample, x='연령대코드(5세단위)', y='총콜레스테롤', hue='음주여부')
sns.pointplot(data=df, x="연령대코드(5세단위)", y="혈색소", hue="음주여부", ci=None)
pointplot
plt.figure(figsize=(10,4))
sns.pointplot(data=df, x="연령대코드(5세단위)", y="신장(5Cm단위)", hue="음주여부", errorbar="sd")
boxplot
plt.figure(figsize=(15, 4))
sns.boxplot(data=df, x="신장(5Cm단위)", y="체중(5Kg 단위)")
violinplot
plt.figure(figsize=(15, 4))
sns.violinplot(data=df, x="신장(5Cm단위)", y="체중(5Kg 단위)", hue="성별코드", split=True)
sns.scatterplot(data=df_sample, x="(혈청지오티)AST", y="(혈청지오티)ALT", hue="음주여부")
sns.lmplot(data=df_sample, x="신장(5Cm단위)", y="체중(5Kg 단위)", hue="흡연상태", col="음주여부")
sns.distplot(df.loc[(df["총콜레스테롤"].notnull()) & (df["음주여부"] == 1), "총콜레스테롤"], hist=False)
sns.distplot(df.loc[(df["총콜레스테롤"].notnull()) & (df["음주여부"] == 0), "총콜레스테롤"])
plt.figure(figsize=(20,7))
sns.heatmap(df_corr, annot=True, fmt=".2f", cmap="Blues")