이 글에서는 판다스(Pandas) 데이터프레임의 기본 인덱스를 교체하거나 재설정하는 방법을 알아봅니다. 먼저 데이터프레임을 생성해 기본 인덱스가 어떻게 부여되는지 확인한 후, 이를 사용자 지정 인덱스로 바꾸고 다시 reset_index() 함수로 초기화하는 전체 과정을 단계별로 살펴보겠습니다.
구현 알고리즘
- 1단계: 데이터프레임을 정의합니다.
- 2단계: 직접 만든 사용자 지정 인덱스를 정의합니다.
- 3단계: 판다스 라이브러리의
reset_index()함수를 사용해 기본 인덱스를 새로운 인덱스로 교체합니다.
예제 코드
import pandas as pd
dataframe = {'Name':["Allen", "Jack", "Mark", "Vishal"], 'Marks':[85,92,99,87]}
df = pd.DataFrame(dataframe)
print("Before using reset_index:\n", df)
own_index = ['a', 'j', 'm', 'v']
df = pd.DataFrame(dataframe, own_index)
df.reset_index(inplace = True)
print("After using reset_index:\n", df)
코드 설명
pd.DataFrame(dataframe): 딕셔너리 데이터로 데이터프레임을 생성합니다. 이때 별도의 인덱스를 지정하지 않으면 0부터 시작하는 정수형 기본 인덱스가 자동으로 부여됩니다.pd.DataFrame(dataframe, own_index): 두 번째 인자로 리스트['a', 'j', 'm', 'v']를 전달하면 기본 인덱스 대신 문자열 사용자 지정 인덱스가 적용됩니다.df.reset_index(inplace=True): 기존에 설정했던 인덱스를index라는 이름의 일반 열로 변환하고, 다시 0부터 시작하는 기본 정수 인덱스를 새로 부여합니다.inplace=True옵션은 원본 데이터프레임을 직접 수정한다는 의미입니다.
실행 결과
Before using reset_index():
Name Marks
0 Allen 85
1 Jack 92
2 Mark 99
3 Vishal 87
After using reset_index():
index Name Marks
0 0 Allen 85
1 1 Jack 92
2 2 Mark 99
3 3 Vishal 87
실행 결과를 보면, 처음에는 0~3의 정수 인덱스가 붙어 있던 데이터프레임에 사용자 지정 인덱스가 적용된 후, reset_index() 호출 시점에 기존 인덱스 값들이 index 열로 이동하고 새로운 기본 인덱스가 다시 생성된 것을 확인할 수 있습니다.
추가 팁: drop 매개변수 활용하기
기존 인덱스를 열로 남기고 싶지 않다면 drop=True 옵션을 사용하세요. 이 경우 기존 인덱스는 완전히 삭제되고 새 기본 인덱스만 부여되어, 불필요한 열이 추가되는 것을 방지할 수 있습니다.
df.reset_index(drop=True, inplace=True)