인덱스 정렬과 관련된 내용으로는 크게 두가지입니다.

인덱스를 순서에 따라 정렬하는 방법과, 인덱스를 순서대로 재설정 하는 방법입니다.

 

# 데이터프레임 생성
# 라이브러리는 구동되었다고 전제
df = pd.DataFrame({

    'a': [4, 5, 6],
    'b': [7, 8, 9],
    'c': [10, 11, 12]},
    index = [3, 2, 1]
)

df

인덱스 순서가 조금 이상해 보입니다.

오름차순 순서대로 정렬을 하고 싶다고 하면 우리는 sort_values와 비슷하게 index에 적용해보면 됩니다.

sort_index()처럼요.

해당 함수의 파라미터는 크게 세가지만 알면 됩니다.

1.행 인덱스인지 열 인덱스인지 (axis=0, axis=1) - 행 인덱스인 axis=0이 디폴트값입니다.

2.오름차순인지 내림차순인지 (ascending=True인 오름차순이 기본값입니다. False는 내림차순)

3.inplace=True (기존 데이터프레임에 적용하는 파라미터)

 

sort_values()를 하면 어떤 컬럼에 정렬하라는지 지정해줘야 됩니다.

그러나 인덱스는 unique한 값이기 때문에 단일 행 혹은 열에 대해서만 적용됩니다.

따라서 두가지의 인자를 입력할 필요가 없죠.

대신 앞에서 설명한대로 옵션(파라미터)는 조작할 수 있습니다.

df.sort_index()

sort_index()

인덱스가 정렬되었음을 볼 수 있습니다.

물론 값들의 순서도 인덱스에 붙어서 이동하기 때문에 전체적으로 행이 섞임을 알 수 있습니다.

 

나는 모든 값은 그대로 두고 인덱스값만을 바꾸겠다 할 경우에는?

다음 방법을 사용하면 됩니다.

(drop=True를 반환해주지 않으면 기존의 index가 컬럼으로 추가됩니다.)

df.reset_index(drop=True)

 

요약

인덱스를 정렬하는 방법은 크게 2가지가 있다.

1. 해당 인덱스를 순서대로 정렬하는 방법(값도 같이 움직임) - df.sort_index()

2. 인덱스를 초기화 해버리는 방법(값은 고정) - df.reset_index()  

+ Recent posts