데이터 분석을 하다 보면 판다스(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 속성을 사용하면 더욱 간편하게 중복 여부를 확인할 수도 있으니 상황에 맞게 활용해 보시기 바랍니다.