DataFrame.reset_index(level=None, drop=False, inplace=False, col_level=0, col_fill='')

reset_index:  ์„ค์ • ์ธ๋ฑ์Šค๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๊ธฐ๋ณธ ์ธ๋ฑ์Šค(0,1,2, ... , n)์œผ๋กœ ๋ณ€๊ฒฝ

  • level : Multi Index์˜ ๊ฒฝ์šฐ ์ œ๊ฑฐํ•  ์ธ๋ฑ์Šค์˜ ๋ ˆ๋ฒจ์„ ์„ค์ •ํ• ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ชจ๋“  ๋ ˆ๋ฒจ์ž…๋‹ˆ๋‹ค.
  • drop : ์ œ๊ฑฐํ•œ ์ธ๋ฑ์Šค๋ฅผ ์—ด์— ์ถ”๊ฐ€ํ• ์ง€ ์—ฌ๋ถ€์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ False๋กœ ์ œ๊ฑฐ๋œ ์ธ๋ฑ์Šค๋Š” ์—ด๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค.
  • inplace : pandas ๊ณตํ†ต ์ธ์ˆ˜๋กœ, ์›๋ณธ์„ ๋ณ€๊ฒฝํ• ์ง€ ์—ฌ๋ถ€ ์ž…๋‹ˆ๋‹ค.
  • col_level / col_fill : Multi Index์˜ ๊ฒฝ์šฐ ์ œ๊ฑฐ๋œ ์ธ๋ฑ์Šค๋ฅผ ์—ด์— ์ถ”๊ฐ€ํ•  ๋•Œ ๋ ˆ๋ฒจ๊ณผ ์—ด์˜ ์ด๋ฆ„์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    col_level์„ ํ†ตํ•ด ๋ ˆ๋ฒจ์„ ์„ค์ •ํ•˜๊ณ , col_fill์„ํ†ตํ•ด ํ•ด๋‹น ์—ด์˜ ์ด๋ฆ„์„ ์ •ํ•ฉ๋‹ˆ๋‹ค.

 

์˜ˆ์‹œ

๋จผ์ € 3x2 ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„ ์ƒ์„ฑ

import pandas as pd 

df = pd.DataFrame([[1,2],[3,4],[5,6]],['row1','row2','row3'],['col1','col2'])
print(df)
      col1  col2
row1     1     2
row2     3     4
row3     5     6

 

๊ธฐ๋ณธ์ ์ธ ์‚ฌ์šฉ๋ฒ•(+drop, inplace)

๊ธฐ๋ณธ์ ์œผ๋กœ ์•„๋ฌด ์ธ์ˆ˜ ์—†์ด ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด, ๋ชจ๋“  ๋ ˆ๋ฒจ์— ๋Œ€ํ•ด ์ธ๋ฑ์Šค๊ฐ€ ์ œ๊ฑฐ๋˜๋ฉฐ, ์—ด์— ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.

print(df.reset_index())
  index  col1  col2
0  row1     1     2
1  row2     3     4
2  row3     5     6

์ฒซ๋ฒˆ์งธ ์—ด 0,1,2 ์ถ”๊ฐ€  / row1 ์—ด ์ปฌ๋Ÿผ๋ช… index๋กœ ๋ฐ”๋€œ

drop = True์ธ ๊ฒฝ์šฐ ์—ด์ด ๋ฐ–์œผ๋กœ ๊บผ๋‚ด์ง€๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ์™„์ „ํžˆ ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค.

print(df.reset_index(drop=True))
   col1  col2
0     1     2
1     3     4
2     5     6

index ์ปฌ๋Ÿผ ์‚ญ์ œ / 0 1 2 ์ˆœ์„œ๋กœ๋งŒ ๋‚จ์Œ

inplace=True์ธ ๊ฒฝ์šฐ ์›๋ณธ์ด ๋ณ€๊ฒฝ๋˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

df.reset_index(inplace=True)
print(df)
  index  col1  col2
0  row1     1     2
1  row2     3     4
2  row3     5     6

 

 

Multi Index ์˜ˆ์‹œ

 4x4์งœ๋ฆฌ Multi Index ์ƒ์„ฑ

idx = [['IDX1','IDX1','IDX2','IDX2'],['row1','row2','row3','row4']]
col = [['COL1','COL1','COL2','COL2'],['val1','val2','val3','val4']]
data = [[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]]
df2 = pd.DataFrame(data,idx,col)
print(df2)
          COL1      COL2     
          val1 val2 val3 val4
IDX1 row1    1    2    3    4
     row2    5    6    7    8
IDX2 row3    9   10   11   12
     row4   13   14   15   16

 

๊ธฐ๋ณธ์ ์ธ ์‚ฌ์šฉ๋ฒ•(+level)
Multi Index์˜ ๊ฒฝ์šฐ level์„ ์„ค์ •ํ•ด์คŒ์œผ๋กœ์„œ ์ œ๊ฑฐํ•  ์ธ๋ฑ์Šค์˜ ๋ ˆ๋ฒจ์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
level์„ ์ž…๋ ฅํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋ชจ๋“  index์— ๋Œ€ํ•ด์„œ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.

print(df2.reset_index())
  level_0 level_1 COL1      COL2     
                  val1 val2 val3 val4
0    IDX1    row1    1    2    3    4
1    IDX1    row2    5    6    7    8
2    IDX2    row3    9   10   11   12
3    IDX2    row4   13   14   15   16

 

level=0์ธ ๊ฒฝ์šฐ

print(df2.reset_index(level=0))

 

     level_0 COL1      COL2     
             val1 val2 val3 val4
row1    IDX1    1    2    3    4
row2    IDX1    5    6    7    8
row3    IDX2    9   10   11   12
row4    IDX2   13   14   15   16

 

level=1์ธ ๊ฒฝ์šฐ

print(df2.reset_index(level=1))
     level_1 COL1      COL2     
             val1 val2 val3 val4
IDX1    row1    1    2    3    4
IDX1    row2    5    6    7    8
IDX2    row3    9   10   11   12
IDX2    row4   13   14   15   16

 

col_fill / col_level์˜ ์‚ฌ์šฉ
col_fill์„ ์ด์šฉํ•˜์—ฌ ์—ด๋กœ ๋ณ€๊ฒฝ๋˜๋Š” ์ธ๋ฑ์Šค์˜ ์—ด ์ด๋ฆ„์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. COL0์œผ๋กœ ์„ค์ •ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

print(df2.reset_index(level=1, col_fill='COL0'))
     level_1 COL1      COL2     
        COL0 val1 val2 val3 val4
IDX1    row1    1    2    3    4
IDX1    row2    5    6    7    8
IDX2    row3    9   10   11   12
IDX2    row4   13   14   15   16

col_level์„ ์ด์šฉํ•ด ์—ด ์ด๋ฆ„์˜ ๋ ˆ๋ฒจ์„ ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. COL0์„ ๋‹ค๋ฅธ ์—ด์ด๋ฆ„์— ๋งž๊ฒŒ LEVEL์„ ๋ณ€๊ฒฝํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

print(df2.reset_index(level=1,col_fill='col0',col_level=1))
        col0 COL1      COL2     
     level_1 val1 val2 val3 val4
IDX1    row1    1    2    3    4
IDX1    row2    5    6    7    8
IDX2    row3    9   10   11   12
IDX2    row4   13   14   15   16

+ Recent posts