본문 바로가기
Python/Pandas

pandas ValueError: cannot set index with a duplicate key 오류 해결하기

by PySun 2025. 5. 2.
반응형

소개

파이썬의 pandas 라이브러리를 사용할 때, 'ValueError: cannot set index with a duplicate key' 오류는 종종 발생하는 문제 중 하나입니다. 이 오류는 데이터프레임의 인덱스를 설정하려고 할 때 중복된 키가 존재할 경우에 발생합니다. 오늘은 이 오류의 원인과 해결 방법에 대해 살펴보겠습니다.

에러 발생 예시 코드

먼저, 해당 오류가 발생할 수 있는 간단한 예시 코드를 확인해보겠습니다.

import pandas as pd

# 중복된 키가 있는 데이터 생성
data = {
    'key': ['A', 'B', 'A', 'C'],
    'value': [1, 2, 3, 4]
}

df = pd.DataFrame(data)

# 중복된 키로 인덱스 설정 시도
df.set_index('key', inplace=True)
print(df)

에러 해결 방법

1. 중복 키 제거

가장 간단한 해결책은 중복 키를 제거하는 것입니다. 아래 코드는 중복된 키를 제거하고 인덱스를 설정하는 방법입니다.

import pandas as pd

# 중복된 키가 있는 데이터 생성
data = {
    'key': ['A', 'B', 'A', 'C'],
    'value': [1, 2, 3, 4]
}

df = pd.DataFrame(data)

# 중복된 키 제거
df = df.drop_duplicates(subset='key')

# 인덱스 설정
df.set_index('key', inplace=True)
print(df)

2. 중복 키 허용 및 집계

중복 키를 허용하고 싶다면, 집계를 통해 데이터를 처리할 수 있습니다. 예를 들어, 평균값으로 집계해서 인덱스를 설정하는 방법입니다.

import pandas as pd

# 중복된 키가 있는 데이터 생성
data = {
    'key': ['A', 'B', 'A', 'C'],
    'value': [1, 2, 3, 4]
}

df = pd.DataFrame(data)

# 중복된 키에 대해 평균값으로 집계
df = df.groupby('key').mean()

# 인덱스 설정
print(df)

마무리

이번 블로그 글에서는 pandas에서 발생할 수 있는 'ValueError: cannot set index with a duplicate key' 오류에 대해 알아보고, 이를 해결하는 다양한 방법을 살펴보았습니다. 중복 키를 제거하거나 집계하는 방법을 통해 오류를 극복할 수 있습니다. pandas를 사용할 때에는 데이터의 특성과 구조를 잘 이해하고 적절한 접근 방식을 선택하는 것이 중요합니다!

반응형