본문 바로가기
Python/Pandas

pandas IndexError: boolean index did not match indexed array 오류 해결하기

by PySun 2025. 7. 19.
반응형

소개

파이썬의 pandas를 사용할 때 'IndexError: boolean index did not match indexed array' 오류는 종종 발생하는 문제 중 하나입니다. 이 오류는 불리언 인덱스의 길이가 데이터프레임 또는 시리즈의 길이와 일치하지 않을 때 발생합니다. 이 블로그 글에서는 이 에러의 원인과 해결 방법을 자세히 살펴보겠습니다.

에러 발생 예시 코드

먼저, 'IndexError: boolean index did not match indexed array' 에러가 발생할 수 있는 간단한 예시 코드를 살펴보겠습니다.

import pandas as pd

# 데이터프레임 생성
data = {'A': [1, 2, 3, 4, 5], 'B': [5, 4, 3, 2, 1]}
df = pd.DataFrame(data)

# 불리언 인덱스 생성 (길이가 데이터프레임과 일치하지 않음)
boolean_index = [True, False, True]

# 불리언 인덱스를 사용하여 데이터프레임 필터링
filtered_df = df[boolean_index]
print(filtered_df)

에러 해결 방법

1. 불리언 인덱스의 길이 확인하기

가장 먼저 불리언 인덱스의 길이가 데이터프레임의 길이와 일치하는지 확인해야 합니다. 불리언 인덱스의 길이가 다른 경우 조정해야 합니다.

import pandas as pd

# 데이터프레임 생성
data = {'A': [1, 2, 3, 4, 5], 'B': [5, 4, 3, 2, 1]}
df = pd.DataFrame(data)

# 불리언 인덱스 생성 (길이를 데이터프레임과 일치하도록 수정)
boolean_index = [True, False, True, False, True]

# 불리언 인덱스를 사용하여 데이터프레임 필터링
filtered_df = df[boolean_index]
print(filtered_df)

2. 조건문을 사용하여 불리언 인덱스 만들기

때로는 특정 조건에 따라 불리언 인덱스를 생성해야 합니다. 예를 들어, 특정 열의 값이 조건에 맞는지 판단하여 불리언 인덱스를 생성할 수 있습니다.

import pandas as pd

# 데이터프레임 생성
data = {'A': [1, 2, 3, 4, 5], 'B': [5, 4, 3, 2, 1]}
df = pd.DataFrame(data)

# 'A' 열의 값이 3보다 큰지 여부에 따라 불리언 인덱스 생성
boolean_index = df['A'] > 3

# 불리언 인덱스를 사용하여 데이터프레임 필터링
filtered_df = df[boolean_index]
print(filtered_df)

마무리

이 블로그 글에서는 pandas에서 발생하는 'IndexError: boolean index did not match indexed array' 에러에 대한 해결 방법을 살펴보았습니다. 불리언 인덱스의 길이를 확인하거나 조건문을 사용하여 적절한 불리언 인덱스를 생성하는 것이 중요합니다. pandas를 활용하여 데이터를 효율적으로 필터링할 때, 이러한 점들을 염두에 두면 더 원활한 작업이 가능할 것입니다.

반응형