[학교_데이터과학] 대푯값과 중앙값, 최빈값 파이썬으로 구하기
중앙값, 최빈값
중앙값 구하는 함수 : quantile(), median()
최반값 구하는 함수 : mode()
(quantile은 사분면을 기반으로 하는데, median보다 더 정확한 계산을 할 때 쓰인다.)
google colab에 csv 파일 올리는 방법
1. files.upload() 이용
from google.colab import files
files.upload()
csv_file='2019_03_Daegu_Average_Temperature.csv'
import pandas as pd
df=pd.read_csv(csv_file, encoding='cp949') # 한글 인코딩 해주어야 함
print(df.head()) # df = data frame
2. 구글 드라이브에 직접 접근하여 csv 파일 올리기
#구글 드라이브 마운트
from google.colab import drive
drive.mount('/content/drive')
import pandas as pd
path='/content/sample_data/mnist_test.csv'
data=pd.read_csv(path)
print(data.head())
판다스(pandas) 라이브러리 사용
- 3월 대구광역시 평균 기온의 평균값 구하기 (위에서 read_csv로 csv 파일을 읽어와야 실행 가능)
t=df['평균기온(°C)'].mean()
print( f'3월 평균기온 : {t}' )
print('3월 평균기온 : ',df['평균기온(°C)'].mean() ) # 열이름에 온도와 같은 특별한 기호가 있는 경우는 자동 완성 기능 사용하기
- 3월 대구광역시 평균 기온의 중앙값 구하기
중앙값(median)은 전체 데이터 중 가운데에 있는 수이다. 데이터의 수가 짝수인 경우에는 가장 가운데에 있는 두 수의 평균이 중앙값이다.
quantile() 함수는 크기 순서로 나열한 자료를 4등분하는 관측값으로 정규분포를 크게 벗어나거나 흩어짐(산포)이 큰 상황에서는 사분위수가 대푯값으로 사용된다.
사분위수는 25, 50, 75를 기준 점으로 나눠져 1분위부터 4분위까지 나타낸다. pandas의 quantile함수는 0과 1 사이 값을 입력하여 사분위수를 나타낸다. quantile(0.5)일 경우 50분위를 나타내며, 이를 해석하면 데이터의 50%가 결과값보다 작거나 같음을 의미한다.
print("중앙값 :", df['평균기온(°C)'].quantile(0.5))
print("중앙값 :", df['평균기온(°C)'].median())
- 3월 대구광역시 평균 기온의 최빈값 구하기
print("최빈값 :", df['평균기온(°C)'].mode()[0])
# 데이터 프레임의 열 데이터 셋에서 최빈값을 반환
print(pd.value_counts(df['평균기온(°C)']))
# 데이터 셋의 도수분포표를 반환
다양한 통계 정보를 요약해주는 describe() 함수
print(df.describe()) # 수치형 데이터 열에 대한 통계 정보
print(df.describe(include='object')) # 문자형 데이터 열에 대한 통계 정보
count : 데이터 개수
mean : 평균
std : 표준편차
min : 최솟값
max : 최댓값
unique : 고유 데이터 값의 개수
top : 가장 많이 출현한 데이터 개수
freq : 가장 많이 출현한 데이터의 빈도수
import pandas as pd
df=pd.DataFrame([32, 62, 302, 24, 38, 24, 36], columns=['num'])
df
print('평균 : ',df['num'].mean())
print('중앙값 : ', df['num'].median())
print('최빈값 : ',df['num'].mode()[0])
극단적 자료가 있는 경우 평균보다는 중앙값, 최빈값이 안정적이다.
데이터의 분포가 대칭이 아닌 경우는 중앙값이 데이터를 대표하기에 적합하다.
위의 데이터에서는 중앙값이 대표값이 된다.