Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python Pandas에서 중복 인덱스 값 확인하기 – duplicated() 메서드 완벽 가이드

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()와 같이 불리언 마스크를 반전시켜 중복을 제거한 새로운 인덱스도 손쉽게 만들 수 있습니다.