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