BLOG/데이터분석
[데이터분석] 데이터프레임 : 특정 칼럼(열) 기준으로 오름차순/내림차순 정렬하기 - sort_values()
알디노
2021. 3. 10. 11:07
데이터프레임으로 데이터 분석을 할 때, 필요 없는 칼럼은 제거하거나 특정 칼럼을 기준으로 정렬하는 등 데이터 전처리 과정을 거치게 되는데요, 이때 특정 칼럼(열) 기준으로 정렬을 하려면 어떻게 해야 할까요?
데이터프레임에는 sort_values() 라는 함수를 이용하여 정렬을 할 수 있는데요, 아래 코드를 보면서 설명드리도록 하겠습니다.
- sort_values : 특정 칼럼 기준으로 정렬
먼저 다음과 같은 데이터프레임이 있다고 가정해보겠습니다.
import pandas as pd
df = pd.DataFrame(
{'name': ['coffee', 'tea', 'juice','milk', 'ade'],
'price': [3000, 4000, 5000, 2000, 5000],
'rating': [4, 3.5, 3.7, 3, 2],
'category': [1,2,3,4,4]})
display(df)
name price rating category
0 coffee 3000 4.0 1
1 tea 4000 3.5 2
2 juice 5000 3.7 3
3 milk 2000 3.0 4
4 ade 5000 2.0 4
위 데이터프레임을 보면 name, price, rating, category라는 칼럼이 있는데요, 여기서 'rating' 칼럼을 기준으로 내림차순 정렬을 해보도록 하겠습니다.
df.sort_values(['rating'], ascending=[False])
name price rating category
0 coffee 3000 4.0 1
2 juice 5000 3.7 3
1 tea 4000 3.5 2
3 milk 2000 3.0 4
4 ade 5000 2.0 4
위 코드를 보면, sort_valeus() 함수를 사용했고, 함수 안에 ['rating'] 이라는 칼럼을 지정하고, 오름차순(ascending)을 False(아니요) 로 설정함으로써 내림차순으로 정렬되도록 하였습니다.
만약, 내림차순으로 정렬하고 싶을 땐 'ascending=[False]'를 입력하지 않으면 됩니다(오름차순이 기본값).
한편, 숫자 데이터가 아니고 알파벳이나 한글 데이터도 정렬이 가능한데요, 만약 'name' 칼럼의 항목을 알파벳 순서대로 정렬하고 싶다면 다음과 같이 코드를 입력하면 됩니다.
df.sort_values(['name'])
name price rating category
4 ade 5000 2.0 4
0 coffee 3000 4.0 1
2 juice 5000 3.7 3
3 milk 2000 3.0 4
1 tea 4000 3.5 2