본문 바로가기

BLOG/데이터분석

[데이터분석] 데이터프레임 : 특정 칼럼(열) 기준으로 오름차순/내림차순 정렬하기 - sort_values()

 

데이터프레임으로 데이터 분석을 할 때, 필요 없는 칼럼은 제거하거나 특정 칼럼을 기준으로 정렬하는 등 데이터 전처리 과정을 거치게 되는데요, 이때 특정 칼럼(열) 기준으로 정렬을 하려면 어떻게 해야 할까요?

 

데이터프레임에는 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