데이터프레임 정렬하기
1. Index 값 기준으로 정렬하기
axis = 0 : 행 인덱스 기준 정렬 (Default 오름차순)
axis - 1 : 열 인덱스 기준 정렬
ascending = True : 오름차순, ascending = False: 내림차순
df = df.sort_index(axis = 0)
df = df.sort_index(axis = 1, ascending = False)
Column값 기준으로 정렬하기
df = df.sort_values('col1', ascending = True)
→ col1 컬럼 기준 정렬 (Default 오름차순)
df = df.sort_values(['col2', 'col1'], ascending = [True, False])
→ col2 컬럼 기준 오름차순 정렬 후 col1 컬럼 기준 내림차순 정렬
데이터프레임 분석용 함수
count : 데이터 개수 확인 (Default: Nan값 제외)
max, min : 최대, 최소값 확인 가능 (Default:열 기준, Nan값 제외)
sum, mean : 합계 및 평균 계산 (Default:열 기준, Nan값 제외)
→ axis : 행, 열 기준 // skipna : True (NaN 무시) / False (NaN 포함)
🌕 NaN값이 존재하는 column의 평균을 구하여 NaN값으로 대체하기
...
B_avg = df['math'].mean()
df['math'] = df['math'].fillna(B_avg)
df.mean(axis = 1, skipna = False
그룹으로 묶기
group by : 조건부로 집계하고 싶은 경우
df = pd.DataFrame({'data1' : range(6),
'data2': [4,4,6,0,6,1],
'key':['A','B','C','A','B','C']})
df.groupby('key').sum()
df.groupby(['key','data1']).sum()
aggregate : groupby를 통해서 집계를 한번에 계산하는 방법
df.groupby('key').aggregate(['min', np.median, max])
df.groupby('key').aggregate({'data1':'min', 'data2': np.sum})
filter : groupby를 통해서 그룹 속성을 기준으로 데이터 필터링
def filter_by_mean(x):
return x['data2'].mean() >3
df.groupby('key').mean()
df.groupby('key').filter(filter_by_mean)
apply.lambda : groupby를 통해서 묶인 데이터에 함수적용
df.groupby('key').apply(lambda x: x.max() - x.min())
get_group: groupby로 묶인 데이터레엇 key값으로 데이터를 가져올 수 있다.
df.read_csv("./univ.csv")
# 상위 5개 데이터
df.head()
## 데이터 추출
df.groupby("시도").ger_group("충남")
len(df.groupby("시도").ger_group("충남")) # 개수