본문 바로가기
Python/Pandas

pandas ValueError: Length of values does not match length of index 오류 해결하기

by PySun 2025. 4. 13.
반응형

소개

Pandas 데이터프레임을 사용할 때 'ValueError: Length of values does not match length of index' 오류는 종종 발생하는 문제입니다. 이 오류는 데이터프레임의 인덱스 크기와 입력하려는 데이터의 길이가 일치하지 않을 때 발생합니다. 이 블로그 글에서는 이 오류의 원인과 해결 방법에 대해 자세히 살펴보겠습니다.

에러 발생 예시 코드

아래는 'ValueError: Length of values does not match length of index' 오류가 발생할 수 있는 간단한 예시입니다.

import pandas as pd

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

# 인덱스 길이는 3, 추가하려는 값의 길이는 2
df['B'] = [4, 5]  # 이 줄에서 오류가 발생합니다.

에러 해결 방법

1. 추가하려는 값의 길이를 확인

가장 먼저 확인해야 할 것은 데이터프레임의 인덱스의 길이와 추가하려는 데이터의 길이가 일치하는지입니다. 이를 확인하여 길이를 맞춰줄 수 있습니다.

import pandas as pd

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

# 길이를 맞춘 값 추가
df['B'] = [4, 5, 6]  # 길이를 맞추어 수정
print(df)

2. NaN 값을 사용하여 길이 조정

추가하려는 데이터의 길이가 짧을 경우, NaN 값을 활용해 길이를 맞춰줄 수도 있습니다.

import pandas as pd
import numpy as np

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

# NaN 값을 사용하여 길이 조정
df['B'] = [4, 5, np.nan]  # NaN 값을 사용하여 길이를 맞춤
print(df)

3. 조건부로 값 추가하기

또 다른 방법은 특정 조건에 따라 값을 추가하는 것입니다. 예를 들어, 인덱스를 기준으로 조건에 따라 값을 할당할 수 있습니다.

import pandas as pd

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

# 조건부로 인덱스에 맞춰서 값 추가
df['B'] = pd.Series([4, 5, 6], index=[0, 1, 2])  # 인덱스에 맞게 설정
print(df)

마무리

이번 포스트에서는 Pandas에서 발생하는 'ValueError: Length of values does not match length of index' 오류의 원인을 살펴보고, 이 오류를 해결하는 방법에 대해 자세히 알아보았습니다. 데이터프레임을 다룰 때는 항상 인덱스와 값의 길이를 확인하고, 필요하다면 NaN을 활용하여 길이를 조정하거나 조건부로 값을 추가하는 방법을 고려해보세요. Pandas는 매우 강력한 도구이므로 이러한 작은 오류를 피하면 더 편리하게 데이터를 다룰 수 있습니다.

반응형