본문 바로가기
Python/Pandas

pandas IndexError: DataFrame index out of range 오류 해결하기

by PySun 2025. 6. 18.
반응형

소개

파이썬의 Pandas 라이브러리로 데이터프레임을 다루다 보면 종종 'IndexError: DataFrame index out of range'라는 에러에 직면할 수 있습니다. 이 오류는 대개 존재하지 않는 인덱스에 접근하려 할 때 발생합니다. 이번 글에서는 이 오류가 발생하는 원인과 이를 해결하기 위한 방안들에 대해 알아보도록 하겠습니다.

에러 발생 예시 코드

먼저, 'IndexError: DataFrame index out of range' 에러가 발생할 수 있는 간단한 예시 코드를 살펴보겠습니다.

import pandas as pd

# 데이터프레임 생성
data = {'이름': ['홍길동', '김철수'], '나이': [25, 30]}
df = pd.DataFrame(data)

# 존재하지 않는 인덱스에 접근
print(df.loc[2])  # 인덱스 2는 존재하지 않습니다.

에러 해결 방법

1. 데이터프레임의 인덱스 범위 확인하기

가장 먼저 데이터프레임의 실제 인덱스를 확인하여, 존재하지 않는 인덱스를 사용하지 않도록 합니다. 아래 코드를 통해 현재 데이터프레임의 인덱스를 출력해보세요.

import pandas as pd

# 데이터프레임 생성
data = {'이름': ['홍길동', '김철수'], '나이': [25, 30]}
df = pd.DataFrame(data)

# 데이터프레임의 인덱스 확인
print("인덱스:", df.index)

2. 인덱스를 조건으로 데이터 접근하기

DataFrame의 크기를 고려해서 인덱스에 접근하는 것이 좋습니다. 예를 들어, 데이터프레임의 길이를 이용한 조건문을 사용할 수 있습니다.

import pandas as pd

# 데이터프레임 생성
data = {'이름': ['홍길동', '김철수'], '나이': [25, 30]}
df = pd.DataFrame(data)

# 인덱스의 범위 확인 후 접근
index = 2
if index < len(df):
    print(df.loc[index])
else:
    print(f"{index}는 유효한 인덱스가 아닙니다. 데이터프레임에는 {len(df)}개의 행이 있습니다.")

3. 인덱스 재설정하기

데이터프레임을 조작하는 과정에서 인덱스가 변경될 수 있습니다. 이 경우, '.reset_index()' 메서드를 사용하여 인덱스를 초기화할 수 있습니다.

import pandas as pd

# 데이터프레임 생성
data = {'이름': ['홍길동', '김철수'], '나이': [25, 30]}
df = pd.DataFrame(data)

# 데이터프레임에서 행 삭제 및 인덱스 재설정
df = df.drop(index=0)  # 홍길동을 삭제
df = df.reset_index(drop=True)

# 안전하게 접근
print(df.loc[0])  # 이제 인덱스 0에는 김철수가 있습니다.

마무리

이번 글에서는 Pandas에서 발생하는 'IndexError: DataFrame index out of range' 오류와 그 해결 방법을 살펴보았습니다. 데이터프레임의 크기를 확인하고 안전한 인덱스 접근 방법을 통해 이 오류를 예방할 수 있습니다. Pandas를 사용할 때는 항상 데이터의 구조를 확인하고 적절한 방법을 사용하는 것이 중요합니다. 여러분의 데이터 분석이 순조롭게 진행되길 바랍니다!

반응형