Count
- 데이터 개수 확인하는 함수이며, default는 NaN 값을 제외함
df.count(axis=0) # 열 기준
df.count(axis=1) # 행 기준
Max, Min
- 최대, 최소값을 반환하는 함수이며, default는 NaN 값을 제외함
- 이 때 반환되는 값은 float 값
df.max() # 최대값
df.min() # 최소값
Sum, Mean
- 합계 및 평균을 계산하며, default는 열 기준으로, NaN 값은 제외됨
- 이 때 반환되는 값은 float 값
df.sum() # 합계
df.mean() # 평균
- axis 인자를 활용하면 행 기준으로 합계 및 평균 계산이 가능해짐
- skipna 인자를 활용하면 NaN 값을 포함하여 계산할 수 있음 -> 대신에, 60 + NaN = NaN 반환
df.sum(axis=1) # 행 합계
df.mean(axis=1, skipna=False) # 평균
- NaN값을 대체시킬 수도 있음 -> fillna 함수를 사용하여 NaN값이 존재하는 Column의 평균을 구해 NaN 값을 대체
avg_value = df['column name'].mean()
df['column name'] = df['column name'].fillna(avg_value)
groupby
- 조건부 집계를 하고 싶은 경우 사용
df.groupby('column name').sum()
df.groupby(['column name list']).sum()
aggregate
- groupby를 통해서 집계를 한번에 계산
- aggregate 메소드에는 함수의 이름을 매개변수로 넣어주며, 이 때 min, max, mean, count 등의 특정 함수들은 문자열 형태로 넘겨줄 수 있음
- 이 때, 함수를 직접 호출하겠다는 것이 아니라 해당 모듈을 사용하겠다는 의미로, median(), max()로 쓰지 않기로 주의!
df.groupby('column name').aggregate(['min', np.median, max])
# 집계함수 numpy 함수 pandas 내장함수
filter
- groupby를 통해서 그룹 속성을 기준으로 데이터 필터링
def filter_by_sum(df):
return df['data1'].sum() > 10
df.groupby('column name').filter(filter_by_sum)
apply, lambda
- groupby를 통해서 묶인 데이터에 함수 적용
df.groupby('column name').apply(lambda x: x.max() - x.min())
- 데이터 프레임을 'key' 칼럼으로 묶고, data1의 최솟값, data2의 합계를 출력하고 싶다면 다음과 같이 실행해보자.
import pandas as pd
def func(df):
data = {}
data['data1_min'] = df['data1'].min()
data['data2_min'] = df['data2'].sum()
return pd.Series(data, index=['data1_min', 'data2_sum'])
# return pd.Series(data)
df.groupby('key').apply(func)
혹은 다음과 같이 간단하게 표현할 수도 있음
df.groupby('key').aggregate({'data1':min, 'data2':sum})
get_group
- groupby로 묶인 데이터에서 key값으로 데이터를 가져올 수 있음
df.groupby('column name').get_group('column name')
df.groupby('시도').get_group('경기')
'데이터 사이언스 > 데이터 분석' 카테고리의 다른 글
[NIPA AI 교육] 데이터 분석하기(2) (0) | 2021.08.18 |
---|---|
[NIPA AI 교육/기본] 데이터 분석하기(1) (0) | 2021.08.14 |
Matplotlib 기초 (0) | 2021.08.12 |
[NIPA AI 교육/기본] Pandas 기초 (0) | 2021.07.26 |
[NIPA AI 교육/기본] Numpy 기초 (0) | 2021.07.25 |