반응형
17-05 인덱스 제거 (droplevel)
DataFrame.droplevel(level, axis=0)
개요
droplevel 메서드는 Multi Index나 Multi Columns에서 특정 레벨을 제거하는 메서드입니다.
사용법
기본 사용법
※ 자세한 내용은 아래 예시를 참고 바랍니다.
df.droplevel(level, axis=0)
level : 제거할 단계 입니다.
axis : 특정 레벨을 제거할 축 입니다.
반응형
예시
먼저 기본적인 사용법 예시를위하여 멀티인덱스 데이터를 만들어보겠습니다.
data= [[0,1,2,3],[4,5,6,7],[8,9,10,11],[12,13,14,15]]
idx = [['idx1','idx1','idx2','idx2'],['row1','row2','row3','row4']]
col = [['col1','col1','col2','col2'],['val1','val2','val3','val4']]
df = pd.DataFrame(data=data, index = idx, columns = col)
print(df)
>>
col1 col2
val1 val2 val3 val4
idx1 row1 0 1 2 3
row2 4 5 6 7
idx2 row3 8 9 10 11
row4 12 13 14 15
기본적인 사용법
level에 제거를 원하는 레벨을 입력함으로서 해당 레벨을 제거하여 값을 출력할 수 있습니다.
level=0인 경우 Multi Index의 level=0인 idx1, idx2가 제거된 것을 알 수 있습니다.
print(df.droplevel(axis=0,level=0))
>>
col1 col2
val1 val2 val3 val4
row1 0 1 2 3 # idx가 제거됨
row2 4 5 6 7
row3 8 9 10 11
row4 12 13 14 15
level=1인 경우 Multi Index의 level=1인 row1, row2, row3, row4가 제거된 것을 알 수 있습니다.
print(df.droplevel(axis=0,level=1))
>>
col1 col2
val1 val2 val3 val4
idx1 0 1 2 3 # row가 제거됨
idx1 4 5 6 7
idx2 8 9 10 11
idx2 12 13 14 15
axis=1인 경우 Multi Columns에 대해서 특정 레벨을 제거 할 수 있습니다.
print(df.droplevel(axis=1,level=0))
>>
val1 val2 val3 val4 # col이 제거됨
idx1 row1 0 1 2 3
row2 4 5 6 7
idx2 row3 8 9 10 11
row4 12 13 14 15
print(df.droplevel(axis=1,level=1))
>>
col1 col1 col2 col2 # vol이 제거됨
idx1 row1 0 1 2 3
row2 4 5 6 7
idx2 row3 8 9 10 11
row4 12 13 14 15
반응형
'파이썬완전정복-Pandas DataFrame > 17. 멀티인덱스' 카테고리의 다른 글
Pandas DataFrame 17-04 인덱스 순서변경 (swaplevel) (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 |