sort_values 메서드는 값을 기준으로 레이블을 정렬하는 메서드이다.
결측값을 포함하고 있는 5행 3열짜리 데이터프레임을 만들어준다.
na = np.NaN
data = [[-3, 'A', 17],
[na, 'D', 31],
[7, 'D', -8],
[15, 'Z', 3],
[0, na, -7]]
col = ['col1','col2','col3']
row = ['row1','row2','row3','row4','row5']
df = pd.DataFrame(data=data, columns=col, index=row)
by 인수의 사용
df.sort_values() 메서드의 인수에는 by= 가 있는데
정렬의 기준이 되는 by에는 레이블명이 되는 str이 올 수도 있고, 레이블명들의 list가 올 수 있다.
list형태가 올 경우, 첫 값 부터 정렬을 한다.
df.sort_values(by='col1')
'col1' 열을 기준으로 정렬하겠다는 의미
이번에는 2개의 열을 정렬하기 위해서 리스트형태로 작성해보겠다.
df.sort_values(by=['col2','col3'])
실행결과를 보았을때 'col2'열을 알파벳순으로 정렬이 된 것을 볼 수 있고
동일한 D값을 가지고 있는 'col3'열의 값에서 정렬이 된 것을 볼 수 있다.
이로써 리스트 안의 순서대로 정렬됨을 확인할 수 있음
axis 인수의 사용
axis 인수를 사용하면 어떤축을 기준으로 정렬할지 설정이 가능하다.
단, 문자와 숫자의 혼용시 오류가 발생한다. ※ NaN은 무시됨
아래는 행 기준 'row5'의 오름차순 정렬
df.sort_values('row5',axis=1)
ascending 인수의 사용
ascending 인수를 이용하여 오름차순과 내림차순을 설정할 수 있다.
기본값은 True로 오름차순이다. 내림차순의 경우 False로 아래와 같다.
df.sort_values(by='col3',ascending=False)
'col3' 열 기준으로 내림차순이 된 것을 볼 수 있다.
na_position 인수의 사용
na_position 인수를 이용하여 결측값의 위치를 지정할 수 있다.
결측값이 맨 뒤(기본값) , na_position = 'last'
아래는 결측값이 맨 앞으로 오도록 함
df.sort_values(by='col1',na_position='first')
ignore_index 인수의 사용
ignore_index 인수를 사용하여 인덱스를 미사용 할 수 있다.
어떤식으로 정렬 되더라도 인덱스는 0,1,2,3,... 순서로 표시된다.
df.sort_values(by='col3',ignore_index=True)
inplace 인수의 사용
원본을 대체할지의 여부를 설정
df.sort_values(by='col1',inplace=True)
df
'DataAnalysis > Pandas' 카테고리의 다른 글
[판다스] 그룹화 함수 (groupby) (0) | 2024.08.30 |
---|