판다스 데이터 값 정렬 인덱스 초기화 sort_values().reset_index()

사용한 데이터 셋

더보기
더보기

롤 랭킹 데이터 : https://www.kaggle.com/datasnaek/league-of-legends

DataUrl = ‘https://raw.githubusercontent.com/Datamanim/pandas/main/lol.csv’

해결방법

df.sort_values("컬럼명").reset_index(drop=True)

 

설명

원하는 column 기준으로 정렬, 예시는 gameDuration이라는 컬럼 기준 으로 변경

데이터프레임.sort_values()를 사용하여 정렬
# 오름차순 정렬
df.sort_values("gameDuration")

# 내림차순 정렬
df.sort_values("gameDuration", ascending = False)

 

gameDuration 컬럼 기준으로 오름차순 정렬하는데(defalt) 실제 데이터프레임은 변경하지 않고 새로운 데이터프레임 반환 

내림차순 정렬하고 싶다면 ascending 옵션을 False로 변경

 

[주의] 따로 저장하지 않으면 기존 데이터프레임 변경 없음

df.sort_values('gameDuration')
df # 기존 데이터프레임 변경되지 않음

sorted_df = df.sort_values('gameDuration') # 새로운 데이터프레임에 할당해줄 것

 

변경된 인덱스 확인

.index 호출하면 gameDuration 컬럼 기준으로 오름차순 정렬된 데이터프레임 순서대로 인덱스를 담고있는 Index 객체 반환

df.sort_values("gameDuration").index

 

gameDuration 컬럼에 중복된 값이 있는 경우 기존 인덱스 순서 유지(defalt)

 

새로운 index 부여

.reset_index 하면 정렬된 데이터 프레임의 기존 인덱스는 index라는 새로운 열로 저장되고, 지정한 정렬 기준으로 인덱스가 0부터 다시 부여됨

df.sort_values("gameDuration").reset_index()

.reset_index 옵션으로는 drop=True, inplace=True 가 있음

inplace=True하면 덮어쓰기 기존 데이터프레임 유지

 

기존 index 삭제

drop=True 옵션을 달면 기존 인덱스 정보가 담긴 index 열이 삭제

 

df.sort_values('gameDuration').reset_index(drop=True)