반응형

17-04 인덱스 순서변경 (swaplevel)

DataFrame.swaplevel(i=- 2, j=- 1, axis=0)

 

개요


swaplevel메서드는 Multi Index (또는 Munti Columns)에서 두 인덱스의 순서를 변경하는 메서드입니다.

 

사용법


기본 사용법
※ 자세한 내용은 아래 예시를 참고 바랍니다.
df.swaplevel(i=- 2, j=- 1, axis=0)
i , j : 순서를 변경할 두 인덱스의 레벨입니다. 기본적으로 제일 낮은 두 레벨의 인덱스가 교환됩니다.(-2, -1)
axis : 기본값은 0으로 axis=1로 변경할 경우 Multi Columns에 대해 메서드가 수행됩니다.

반응형

 

예시


먼저 기본적인 사용법 예시를위하여 멀티인덱스 데이터를 만들어보겠습니다.

data = {'col':[0,1,2,3,4,5]}
level0 = ['idx1','idx1','idx1','idx1','idx2','idx2']
level1 = ['val1','val1','val2','val2','val3','val4']
level2 = ['row1','row2','row3','row4','row5','row6']
idx = [level0, level1, level2]
df = pd.DataFrame(data = data, index=idx)
print(df)
>>
                col
idx1 val1 row1    0
          row2    1
     val2 row3    2
          row4    3
idx2 val3 row5    4
     val4 row6    5


기본적인 사용법
i, j인수에 아무것도 입력하지 않는다면, 제일 낮은 두 레벨의 인덱스가 교환됩니다.

print(df.swaplevel())
>>
                col
idx1 row1 val1    0 # 인덱스의 level1과 level2의 위치가 바뀐것을 확인.
     row2 val1    1
     row3 val2    2
     row4 val2    3
idx2 row5 val3    4
     row6 val4    5


인수로 한 숫자만 입력하게되면, 가장 낮은 레벨의 인덱스와 인수로 입력한 숫자에 해당하는 레벨의 인덱스가 교환됩니다.

print(df.swaplevel(0))
>>
                col
row1 val1 idx1    0 #인덱스의 level0과 최하위 레벨의 인덱스의 위치가 바뀐것을 확인.
row2 val1 idx1    1
row3 val2 idx1    2
row4 val2 idx1    3
row5 val3 idx2    4
row6 val4 idx2    5


두 값을 지정하여 원하는 인덱스끼리의 교환이 가능합니다. 레벨명이 있다면 레벨명을 쓸 수도 있습니다.

print(df.swaplevel(i=0,j=1))
>>
                col
val1 idx1 row1    0 # 레벨0과 레벨1의 위치가 바뀐것을 확인.
          row2    1
val2 idx1 row3    2
          row4    3
val3 idx2 row5    4
val4 idx2 row6    5
반응형

+ 최근 글