반응형

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인 idx1idx2가 제거된 것을 알 수 있습니다.

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
반응형

+ 최근 글