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

파이썬으로 판다스 시리즈에 중복 요소가 있는지 확인하는 방법

데이터 분석을 하다 보면 판다스(Pandas) 시리즈 안에 중복된 값이 존재하는지 확인해야 하는 경우가 자주 있습니다. 이 글에서는 파이썬으로 시리즈의 중복 여부를 검사하는 두 가지 방법을 소개합니다.

예제 데이터

먼저 다음과 같은 시리즈가 있다고 가정해 보겠습니다.

0    1
1    2
2    3
3    4
4    5

위 시리즈에는 중복 요소가 없습니다. 이제 아래의 방법들을 사용해 실제로 검증해 보겠습니다.

방법 1: 람다 함수 활용

핵심 원리는 간단합니다. 시리즈 전체의 길이와 고유값(unique) 배열의 길이를 비교하는 것입니다. 두 길이가 같다면 중복이 없다는 뜻이고, 다르다면 중복 요소가 존재한다는 의미입니다.

중복 요소가 포함된 시리즈의 예는 다음과 같습니다.

0    1
1    2
2    3
3    4
4    5
5    3

위 시리즈에는 값 3이 두 번 등장하므로 중복이 존재합니다. 이를 확인하는 조건문은 아래와 같이 정의할 수 있습니다.

if(len(data)==len(np.unique(data))):
    print("no duplicates")
else:
    print("duplicates found")

전체 코드 예제

import pandas as pd
import numpy as np
data = pd.Series([1,2,3,4,5])
result = lambda x: "no duplicates" if(len(data)==len(np.unique(data))) else "duplicates found!"
print(result(data))

실행 결과

no duplicates

람다 함수를 사용하면 한 줄로 조건을 표현할 수 있어 코드가 간결해집니다.

방법 2: 조건문 직접 작성

두 번째 방법은 람다 없이 일반적인 if-else 문을 직접 작성하는 것입니다. 로직은 동일하지만 가독성이 더 좋아 초보자에게 적합합니다.

전체 코드 예제

import pandas as pd
import numpy as np
data = pd.Series([1,2,3,4,5,3])
if(len(data)==len(np.unique(data))):
    print("no duplicates")
else:
    print("duplicates found")

실행 결과

duplicates found!

이번에는 값 3이 중복되어 있으므로 "duplicates found!"가 출력됩니다.

마무리

np.unique()를 활용한 길이 비교 방식은 구현이 간단하고 직관적이라 중복 검사에 널리 사용됩니다. 참고로 판다스에서 제공하는 data.duplicated().any()data.is_unique 속성을 사용하면 더욱 간편하게 중복 여부를 확인할 수도 있으니 상황에 맞게 활용해 보시기 바랍니다.