Pandas Index 객체에서 중복된 인덱스 값을 확인하고 싶다면 index.duplicated() 메서드를 사용하면 됩니다. 이 메서드는 각 요소가 중복 값인지 여부를 불리언(Boolean) 배열로 반환해 주어, 데이터 정제나 전처리 작업 시 매우 유용합니다.
1. 필요한 라이브러리 임포트
먼저 pandas 라이브러리를 임포트합니다.
import pandas as pd
2. 중복 값이 포함된 인덱스 생성
예제를 위해 'Airplane'이라는 값이 두 번 등장하는 인덱스를 만들어 보겠습니다.
index = pd.Index(['Car','Bike','Airplane','Ship','Airplane'])
생성한 인덱스를 출력해 내용을 확인합니다.
print("Pandas Index with duplicates...\n", index)3. duplicated()로 중복 값 표시하기
index.duplicated()를 호출하면 중복된 값은 True, 그렇지 않은 값은 False로 표시됩니다.
기본 설정(keep='first')에서는 중복 값 중 첫 번째 등장한 항목은 표시하지 않고, 이후에 반복되는 항목만 True로 처리합니다.
print("\nIndicating duplicate values...\n", index.duplicated())전체 예제 코드
지금까지의 과정을 하나의 코드로 정리하면 다음과 같습니다.
import pandas as pd
# 중복 값이 포함된 인덱스 생성
index = pd.Index(['Car','Bike','Airplane','Ship','Airplane'])
# 인덱스 출력
print("Pandas Index with duplicates...\n", index)
# 데이터의 dtype 반환
print("\nThe dtype object...\n", index.dtype)
# 데이터의 차원 확인
print("\nGet the dimensions...\n", index.ndim)
# 중복 인덱스 값은 True, 나머지는 False로 표시
# 기본값으로 첫 번째 등장한 중복 값은 표시하지 않음
print("\nIndicating duplicate values...\n", index.duplicated())실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Pandas Index with duplicates... Index(['Car', 'Bike', 'Airplane', 'Ship', 'Airplane'], dtype='object') The dtype object... object Get the dimensions... 1 Indicating duplicate values... [False False False False True]
추가 팁: keep 매개변수 활용하기
duplicated() 메서드는 keep 매개변수를 통해 중복 판정 방식을 조절할 수 있습니다.
- keep='first' (기본값): 첫 번째 등장한 값을 남기고, 이후 중복만 True로 표시
- keep='last': 마지막에 등장한 값을 남기고, 앞선 중복들을 True로 표시
- keep=False: 중복에 해당하는 모든 항목을 True로 표시
예를 들어 index.duplicated(keep=False)를 실행하면 'Airplane' 두 개 모두 True로 표시되어, 중복된 모든 위치를 한눈에 파악할 수 있습니다. 이를 활용하면 ~index.duplicated()와 같이 불리언 마스크를 반전시켜 중복을 제거한 새로운 인덱스도 손쉽게 만들 수 있습니다.