본문 바로가기
Python/Pandas

pandas IndexError: single positional indexer is out-of-bounds 오류 해결하기

by PySun 2025. 3. 26.
반응형

소개

데이터 분석을 위해 강력한 라이브러리인 Pandas를 사용할 때, 'IndexError: single positional indexer is out-of-bounds'라는 에러를 만날 수 있습니다. 이 문제는 보통 DataFrame에서 잘못된 인덱스를 사용하여 발생하게 됩니다. 이번 블로그에서는 이 오류가 발생하는 원인과 해결 방법을 살펴보겠습니다.

에러 발생 예시 코드

먼저, 'IndexError: single positional indexer is out-of-bounds' 에러가 발생할 수 있는 간단한 예시 코드를 살펴봅시다.

import pandas as pd

# 샘플 데이터프레임 생성
data = {'이름': ['Alice', 'Bob'], '나이': [25, 30]}
df = pd.DataFrame(data)

# 존재하지 않는 인덱스에 접근
print(df.iloc[3])

에러 해결 방법

1. 인덱스 범위 확인

먼저, DataFrame의 인덱스 범위를 확인하세요. 예를 들어, `df`가 0부터 1까지의 인덱스를 가지므로 3은 유효하지 않은 인덱스입니다. 다음 코드를 사용하여 인덱스 범위를 확인할 수 있습니다.

import pandas as pd

# 샘플 데이터프레임 생성
data = {'이름': ['Alice', 'Bob'], '나이': [25, 30]}
df = pd.DataFrame(data)

# df의 인덱스 범위 확인
print(df.index)

2. 안전한 인덱스 접근

인덱스 접근 시, 항상 DataFrame 길이를 확인하는 것을 추천합니다. 다음과 같은 조건문을 사용해볼 수 있습니다.

import pandas as pd

# 샘플 데이터프레임 생성
data = {'이름': ['Alice', 'Bob'], '나이': [25, 30]}
df = pd.DataFrame(data)

# 안전한 인덱스 접근
index_to_access = 3

if index_to_access < len(df):
    print(df.iloc[index_to_access])
else:
    print("지정된 인덱스는 DataFrame의 범위를 초과합니다.")

마무리

이번 블로그에서는 Pandas에서 'IndexError: single positional indexer is out-of-bounds' 오류 발생 원인과 해결 방법에 대해 알아보았습니다. 항상 인덱스가 DataFrame 범위 내에 있는지 확인하고, 적절한 조건문을 사용하여 에러를 예방하는 것이 중요합니다. 데이터 분석을 할 때, 이러한 작은 실수가 큰 문제로 이어질 수 있다는 점을 기억해 주세요!

반응형