DataAnalysis/Pandas

[판다스] 값 정렬 함수 (sort_values)

2wnswoo 2024. 8. 31. 22:21

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