라이브러리 불러오기
import pandas as pd from matplotlib import pyplot as plt import seaborn as sns import missingno as msno
df = pd.read_csv('heart_2020_cleaned.csv')
msno.matrix(df)
수치데이터 확인
df['BMI'].describe()
boxplot 그려보기
plt.boxplot(df['BMI'])
# 사분위수 조절 Q1 = df["BMI"].quantile(0.25) Q3 = df["BMI"].quantile(0.75) IQR = Q3 - Q1 # 사분위수 기준으로 이상치 제거 outlier = df[(df['BMI'] > Q3 + 3*IQR) | (df['BMI'] < Q1 - 3*IQR)] df2 = df[(df['BMI'] <= Q3 + 3*IQR) & (df['BMI'] >= Q1 - 3*IQR)] # matplotlib plt.boxplot(df2['BMI'])
# boxplot df = pd.read_csv('src_14_boxplot_data.csv') df.groupby('type').head() df.groupby('type').count()
labels = [] episode_data = [] for label, data in df.groupby('type') : labels.append(label) # 현재 레이블 저장 episode_data.append(data['episodes'])
plt.boxplot(episode_data, labels=labels) plt.ylim(0,100)
for index, data in enumerate(episode_data): # 4분위값 구하기 Q1, Q3, IQR Q1 = data.quantile(0.25) Q3 = data.quantile(0.75) IQR = Q3 - Q1 # 이상치 제거하기 episode_data[index] = data[(data >= Q1-3*IQR) & (data <= Q3 + 3*IQR)] # min(q1-1.5*IQR), max(Q3+1.5*IQR) plt.boxplot(episode_data, labels=labels)
fig = plt.figure(figsize=(12,6)) graph = fig.add_subplot(1,1,1) # 박스 면 옵션 변경을 위해서 patch_artist='Patch' options = graph.boxplot(episode_data, labels=labels, patch_artist='Patch') dark_colors = ['#A221F3','#2196F3','#43A047','#FBC02D','#FB8C00','#F33E21'] bright_colors = ['#E8BBFB','#BBDEFB','#C8E6C9','#FFF9C4','#FFE0B2','#FBCABB'] for index, box in enumerate(options['boxes']): box.set_color(dark_colors[index%6]) box.set_linewidth(2) box.set_facecolor(bright_colors[index%6]) for index, flier in enumerate(options['fliers']): flier.set(marker='o', color=bright_colors[index%6]) flier.set_markeredgecolor("white") flier.set_markerfacecolor(dark_colors[index%6]) for index, median in enumerate(options['medians']): median.set_color(dark_colors[index%6]) median.set_linewidth(2) for index, whisker in enumerate(options['whiskers']): whisker.set_color(bright_colors[index%6])
for whisker, cap, box, median, flier, mean, dark, bright in zip(options['whiskers'], options['caps'], options['boxes'], options['medians'], options['fliers'], options['means'], dark_colors, bright_colors): box.set_color(dark_colors) box.set_linewidth(2) box.set_facecolor(bright_colors) flier.set(marker='o', color=bright_colors) flier.set_markeredgecolor("white") flier.set_markerfacecolor(dark_colors) median.set_color(dark_colors) median.set_linewidth(2) whisker.set_color(bright_colors)