📍 통계함수
✅ 엑셀로 열기
: pd.read_excel('파일명.xlsx', index_col='column')
In [1]:
import pandas as pd
df = pd.read_excel('score.xlsx', index_col='지원번호') # index 설정
df
Out[1]:
✅ min()
: 행/열에 대한 최솟값
In [2]:
df['키'].min()
Out[2]:
168
✅ max()
: 행/열에 대한 최댓값
In [3]:
df['키'].max()
Out[3]:
202
✅ median()
: 오름차순으로 정렬했을 때 중앙값
짝수개의 데이터가 있을 때 가운데 2개 중앙 데이터의 평균값
In [4]:
df['키'].median()
Out[4]:
188.0
✅ nlargest(n)
: 상위 n개의 데이터 출력
In [5]:
df['키'].nlargest(3) # 키 큰 사람 순서대로 3명 데이터
Out[5]:
지원번호
6번 202
1번 197
8번 190
Name: 키, dtype: int64
✅ mean()
: 행/열에 대한 평균값
In [6]:
df['키'].mean()
Out[6]:
188.0
: df.mean(skipna=True/False)
- skipna = True(default값)
- skipna = False로 설정되어 있다면, NaN값이 있는 columns NaN으로 출력
In [7]:
import numpy as np
df.loc['2번', '국어'] = np.nan
df.mean(skipna=True, numeric_only = True)
Out[7]:
키 188.000000
국어 65.714286
영어 65.625000
수학 66.250000
과학 70.000000
사회 60.625000
dtype: float64
In [8]:
df.mean(skipna=False, numeric_only = True)
Out[8]:
키 188.000
국어 NaN
영어 65.625
수학 66.250
과학 70.000
사회 60.625
dtype: float64
✅ var()
: 분산
- n 데이터의 개수
- x_i 각 데이터
- bar_x 데이터의 평균
In [9]:
df = pd.read_excel('score.xlsx', index_col='지원번호')
# 평균
math_mean = df['수학'].mean()
# 분산
math_var = ((df['수학'] - math_mean) ** 2).sum() / (df['수학'].count() - 1)
print(math_var)
print(df['수학'].var())
919.6428571428571
919.6428571428571
✅ std()
: 표준편차
- n 데이터의 개수
- x_i 각 데이터
- bar_x 데이터의 평균
In [10]:
print(np.sqrt(df['수학'].var()))
print(df['수학'].std())
30.325613879076826
30.325613879076826
✅ sum()
: 합계
In [11]:
df.sum(numeric_only = True)
Out[11]:
키 1504
국어 500
영어 525
수학 530
과학 560
사회 485
dtype: int64
✅ cumsum()
: 누적합
In [12]:
df['키'].cumsum()
Out[12]:
지원번호
1번 197
2번 381
3번 549
4번 736
5번 924
6번 1126
7번 1314
8번 1504
Name: 키, dtype: int64
✅ cumprod()
: 누적곱
In [13]:
df['국어'].cumprod()
Out[13]:
지원번호
1번 90
2번 3600
3번 288000
4번 11520000
5번 172800000
6번 13824000000
7번 760320000000
8번 76032000000000
Name: 국어, dtype: int64
✅ count()
: Nan값을 제외한 데이터 갯수
In [14]:
df['SW특기'].count()
Out[14]:
6
✅ mode()
: 최빈값
In [15]:
df['학교'].mode()
Out[15]:
0 북산고
Name: 학교, dtype: object
✅ quantile()
: 분위(주어진 데이터를 동등한 크기로 분할하는 지점)
In [16]:
# 하위 10%
df['과학'].quantile(0.1)
Out[16]:
38.5
✅ unique()
: 데이터의 고유값 종류
In [17]:
df['학교'].unique()
Out[17]:
array(['북산고', '능남고'], dtype=object)
✅ nunique()
: 데이터의 고유값 갯수
unique값 갯수
In [18]:
df['학교'].nunique()
Out[18]:
2
✅ agg(aggregation)
: 복수 통계 함수 적용
df[['column_list']].agg([statistics_list])
In [19]:
df[['국어', '수학']].agg(['min', 'max', 'count', 'mean'])
Out[19]:
✅ corr()
: 상관관계
- -1 ~ 1 사이의 범위
- -1에 가까울수록 반비례 관계, 1에 가까울수록 정비례 관계
In [20]:
import seaborn as sns
df = sns.load_dataset('titanic')
df.corr(numeric_only=True)
Out[20]:
참고 : 나도코딩 파이썬 코딩 무료 강의 (활용편5) - 데이터 분석 및 시각화, 이 영상 하나로 끝내세요