ㅅㅇ
Pandas _ 03-1 정렬 본문
Pandas_03_1 정렬
1. 정렬 _ index명 / 컬럼명 을 순 정렬
현재 DF의 값이 기준이 아니라, index 와 컬럼 자체를 이름(유니코드)로 정렬하는 것.
sort_index(axis, ascending=True)
- axis
- index명 기준 정렬(행) : 'index' 또는 0 (기본값)
- columnm 명 기준 정렬(열) : 'columns' 또는 1
- 컬럼명이 정렬됨. 거의 안 함.
- ascending
- 정렬방식
- True(기본): 오름차순, False: 내림차순
- inplace
- 원본에 적용 여부
- False(기본): 변경한 복사본 반환
- True : 원본을 변경
- 인덱스명 정렬 : 거의 이 용도.
# (default) axis = 0, ascending = 오름차순
df.sort_index()
# 내림차순
df.sort_index(ascending = False)
- 컬럼명 정렬
# 컬럼명 정렬
df.sort_index(axis = 1)
- 정렬 후 원하는 처리 가능 : 메소드 체인
# A~B 까지 조회. -> 정렬 후 슬라이싱
# df.sort_index() : 정렬된 데이터프레임
# A로 시작하는 영화 ~ C로 시작하는 영화 앞까지 범위로 조회
df.sort_index().loc['A':'C','color':'duration']
2. 특정 컬럼의 값을 기준으로 행을 정렬
sort_values(by, ascending, inplace)
- by
- 정렬기준 컬럼명
- 해당 컬럼을 기준으로 행을 정렬한다.
- 여러 컬럼에 대해 정렬할 경우 리스트에 담아 전달
- ascending
- 정렬방식
- True(기본): 오름차순, False: 내림차순
- 여러컬럼에 대해 정렬할 경우 정렬방식도 리스트에 담아 전달
- inplace
- 원본에 적용 여부
- False(기본): 변경한 복사본 반환
- True : 원본을 변경
- 결측치는 방식과 상관없이 마지막에 나온다.
(1) 1차 정렬 오름차순, 내림차순
# director_name을 기준으로 행 정렬 (오름차순)
df.sort_values("director_name") # order by director_name
# director_name을 기준으로 행 정렬 (내림차순)
df.sort_values("director_name", ascending=False) # order by director_name desc
(2) n차 정렬 => list에 묶어서. 둘 다 오름차순.
# order by duration, imdb_score : duration 정렬 후 imdb_score 정렬
# duration 이 같은 값들 중 또 다른 기준컬럼으로 정렬하겠다.
df.sort_values(['duration', 'imdb_score']) # 둘 다 오름차순
(3) n차 정렬할 때 각 컬럼마다 정렬방식이 다를 때
=> ascending 설정에서도 순서대로 리스트에 넣어주면 된다.
df.sort_values(['duration', 'imdb_score'], ascending = [True, False]) # 오름. 내림
★ 메소드 체인 : 행 조건, 정렬 등 여러 작업이 이어져서 하나의 구문으로 가능하다.
- 그렇게 되는 이유는? 한 작업 결과가 데이터프레임 (또는 Series)이기 때문이다.
- 나온 결과 DF를 또 처리하고 그 결과 DF 에 대해 또 처리하고 이어서 가능.
=> 배운 조회(인덱싱, 슬라이싱, 펜시 ...원하는 컬럼, 인덱스만), 행 조건, 그룹, 집계 등등 처리를 하나의 구문으로 이어서 작성 가능한 것.
# 메소드 체인
# 정렬한 결과 데이터프레임에서 또 원하는 컬럼만 조회한다던지. 상위 10개만 보여달라던지 등 처리를 해주었다.
df[df['duration']>250].sort_values('director_name').head(10)
df[df['duration']>250].sort_values('director_name')[['director_name', 'duration']]
'AI_STUDY > Pandas' 카테고리의 다른 글
데이터셋 read시 루틴 (0) | 2022.06.10 |
---|---|
Pandas _ 03-2 집계 (0) | 2022.06.09 |
Pandas _ 02-4 DataFrame 접근 _ 컬럼/행의 값 조회 및 변경 (0) | 2022.06.08 |
Pandas _ 02-3 DataFrame 접근 _ 컬럼/행 조회 및 변경 (0) | 2022.06.08 |
Pandas _ 02-2 DataFrame 주요 메소드, 속성 (0) | 2022.06.08 |