본문 바로가기
Python/Pandas

pandas IndexError: Too many indices for array 오류 해결하기

by PySun 2025. 3. 25.
반응형

소개

Pandas를 사용하면서 'IndexError: Too many indices for array' 오류가 발생하는 것은 꽤 일반적입니다. 일반적으로 배열에 대해 접근할 때 잘못된 차원을 사용하려고 할 때 이 오류가 발생합니다. 오늘은 이 오류의 원인과 함께 이를 해결하는 방법에 대해 다뤄보겠습니다.

에러 발생 예시 코드

먼저, 'IndexError: Too many indices for array' 오류가 발생할 수 있는 간단한 예시 코드를 살펴보겠습니다.

import pandas as pd
import numpy as np

# 랜덤한 데이터로 DataFrame 생성
data = np.random.rand(3, 4)
df = pd.DataFrame(data)

# 잘못된 인덱스 접근
value = df[0][0, 1]  # 2D 배열에서 차원 접근이 잘못됨
print(value)

에러 해결 방법

1. 올바른 1D 인덱스 접근 방식 사용하기

DataFrame에서 특정 값을 접근할 때는 DataFrame의 `iloc` 메서드를 사용하는 것이 좋습니다. `iloc` 메서드는 위치 기반 인덱싱을 제공하여 numpy 배열처럼 사용할 수 있습니다.

import pandas as pd
import numpy as np

# 랜덤한 데이터로 DataFrame 생성
data = np.random.rand(3, 4)
df = pd.DataFrame(data)

# iloc 메서드를 사용하여 올바르게 인덱스 접근
value = df.iloc[0, 1]  # 첫째 행, 둘째 열의 값
print(value)

2. 차원 확인하기

접근하려는 데이터의 차원을 항상 확인하여, 올바른 인덱스로 접근하고 있는지를 점검하는 것이 중요합니다. DataFrame의 `shape` 속성을 통해 확인할 수 있습니다.

import pandas as pd
import numpy as np

# 랜덤한 데이터로 DataFrame 생성
data = np.random.rand(3, 4)
df = pd.DataFrame(data)

# DataFrame의 구조 확인
print("DataFrame shape:", df.shape)

# iloc 메서드를 사용하여 올바르게 인덱스 접근
value = df.iloc[0, 1]  # 첫째 행, 둘째 열의 값
print(value)

마무리

이번 블로그 글에서는 Pandas에서 'IndexError: Too many indices for array' 오류와 그 해결 방법에 대해 알아보았습니다. 올바른 인덱스 접근 방식을 사용하는 것과 차원을 항상 확인하는 것이 이 오류를 예방하는 데 중요합니다. Pandas를 다룰 때는 문서를 꼼꼼히 참고하여 올바른 메서드와 속성을 활용하시길 바랍니다. 데이터 분석의 여정을 즐기세요!

반응형