본문 바로가기

BLOG/데이터분석

[데이터분석] 데이터프레임 : 정렬 후 인덱스 재정렬 하기 - reset_index(drop = True)

 

데이터프레임으로 분석을 하기 전 전처리 과정을 거치는데요, sort() 함수를 이용하여 정렬을 시키는 경우가 있습니다. 하지만 sort() 함수를 사용하고 나면, 인덱스 번호가 뒤죽박죽 섞이게 되는데요, 이를 재정렬하기 위해 인덱스를 지웠다 새로 만들기보다, reset_index() 함수를 이용하면 쉽게 재정렬 할 수 있답니다.

한 번 아래 코드를 보면서 살펴보도록 하겠습니다.

 

 

- reset_index(drop=True) : 인덱스 재정렬하기

먼저, 아래와 같이 정렬을 하기 전인 데이터프레임(df)이 있다고 가정해보겠습니다.

 

	item	count	price	rating
0	coffee	1	3000	4.5
1	juice	5	4000	3.0
2	ade	2	5000	4.0
3	milk	1	3000	2.5
4	tea	3	4000	3.0
5	water	2	3000	4.5

 

이 데이터프레임을 'rating' 칼럼을 기준으로 내림차순 정렬을 해보겠습니다.

 

df.sort_values(['rating'], ascending=[False], inplace=True)

 

	item	count	price	rating
0	coffee	1	3000	4.5
5	water	2	3000	4.5
2	ade	2	5000	4.0
1	juice	5	4000	3.0
4	tea	3	4000	3.0
3	milk	1	3000	2.5

 

정렬 후 위 데이터프레임을 보면 인덱스 번호가 0, 5, 2, 1, 4, 3으로 뒤죽박죽 섞인 것을 볼 수 있습니다.

 

따라서 인덱스를 재정렬 해주어야 하는데요, reset_index() 함수를 사용하면 된답니다.

reset_index() 함수는 말 그대로 인덱스를 없애주는 함수인데요, 이 안에 drop=True 라는 값을 인자로 넣어주면 재정렬을 해주는 것과 같게 됩니다.

 

이제 이러한 인덱스 번호가 재정렬되도록 reset_index(drop=True) 함수를 사용해보도록 하겠습니다.

 

df.reset_index(drop=True)

 

	item	count	price	rating
0	coffee	1	3000	4.5
1	water	2	3000	4.5
2	ade	2	5000	4.0
3	juice	5	4000	3.0
4	tea	3	4000	3.0
5	milk	1	3000	2.5

 

데이터프레임 출력 결과, 인덱스가 재정렬 되었음을 볼 수 있습니다.

 

 

한편, 기존의 인덱스 번호를 따로 한 칼럼으로 저장하고 싶다면 아래 코드처럼 reset_index() 함수 안에 drop=True 를 입력하지 않으면 된답니다.

 

df.reset_index()

 

	index	item	count	price	rating
0	0	coffee	1	3000	4.5
1	5	water	2	3000	4.5
2	2	ade	2	5000	4.0
3	1	juice	5	4000	3.0
4	4	tea	3	4000	3.0
5	3	milk	1	3000	2.5