반응형
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
반응형
'파이썬완전정복-Pandas DataFrame > 17. 멀티인덱스' 카테고리의 다른 글
Pandas DataFrame 17-05 인덱스 제거 (droplevel) (0) | 2022.03.13 |
---|---|
Pandas DataFrame 17-03 언피벗화, 행의 열로 변환 (unstack) (0) | 2022.03.13 |
Pandas DataFrame 17-02 피벗화, 열의 인덱스화 (stack) (0) | 2022.03.13 |
Pandas DataFrame 17-01 하위분류반환 (xs) (0) | 2022.03.13 |