Skip to main content
인덱스는 조회 성능뿐 아니라 결합 안정성, 시계열 정렬 정확도에도 영향을 줍니다. 이 문서는 set_index, reset_index, reindex를 중심으로 실무 인덱스 운영 기준을 정리합니다.

인덱스 전략

상황권장 인덱스
일반 전처리/모델 입력RangeIndex 유지
시계열 집계/리샘플링DatetimeIndex
계층형 리포트MultiIndex
분석 중간 단계에서는 RangeIndex, 시계열 단계에서만 DatetimeIndex를 올리는 방식이 운영 난이도를 낮춥니다.

핵심 연산

# 비즈니스 키를 인덱스로 설정
orders = orders.set_index("order_id", drop=False)

# 인덱스를 컬럼으로 복원
orders = orders.reset_index(drop=True)

# 인덱스 정렬
orders = orders.sort_index()

# 인덱스 기준 재정렬 (누락 인덱스 생성)
full_idx = pd.Index([1001, 1002, 1003, 1004], name="order_id")
orders = orders.reindex(full_idx)

중복 인덱스 점검

dup_rate = orders.index.duplicated().mean()
print("index duplicated rate:", dup_rate)
중복 인덱스가 존재하면 loc 선택 결과가 단일 행이 아닌 다중 행으로 바뀌어 이후 연산을 흔들 수 있습니다.

실무 팁

  • 결합 키를 인덱스로 올렸다면 drop=False로 원본 컬럼을 유지합니다.
  • 저장(Parquet) 직전에는 reset_index()로 평탄화하면 타 시스템 연동이 쉬워집니다.
  • 시계열 인덱스는 timezone 정책(UTC 저장, 지역시간 분석)을 문서로 고정합니다.

이어서 볼 문서