import numpy as np
import pandas as pd
# 평균
np.mean(df['열'])
df['열'].mean()
# 중앙값
np.median(df['열'])
df['열'].median()
# 최빈값
df['열'].mode()
# plt.hist(변수명, bins = 구간 수, [edgecolor = '색'])
plt.hist(diabetes['Age'], bins = 5, edgecolor = 'gray')
plt.xlabel('Age')
plt.ylabel('Frequency')
plt.show()

# 빈도수 조정
plt.hist(diabetes['Age'], bins = 10, edgecolor = 'gray')
plt.xlabel('Age')
plt.ylabel('Frequency')
plt.show()

# seaborn 사용
sns.histplot(x= 'Age', data = diabetes)
# 엣지 자동 지정, bin 미지정 시 자동 지정
plt.show()
# x라벨과 y라벨도 자동 지정

sns.kdeplot(diabetes['Age'])
# sns.kdeplot(x='Age', data = diabetes)
plt.show()


# 히스토그램과 밀도추정 동시 출력
sns.histplot(diabetes['Age'], kde = True)

# NaN 처리
temp = diabetes.loc[diabetes['Age'].notnull()]
# 종(세로)
plt.boxplot(temp['Age'])
plt.grid()
plt.show()

# 횡(가로)
plt.boxplot(temp['Age'], vert = False)
plt.grid()
plt.show()

# seaborn 활용
sns.boxplot(x = diabetes['Age'])
plt.grid()
plt.show()

sns.boxplot(y = diabetes['Age'])
plt.grid()
plt.show()

boxplot은 4분위수를 표현

IQR = Q3(3사분위수) - Q1(1사분위수)

Potential Whisker Length : 1.5 * IQR 범위, 잠재적 수염의 길이 범위
Actual Whisker Length : 1.5 * IQR 범위 이내의 데이터의 최소, 최대값, boxplot 사용 시 표시되는 수염의 길이