개요
데이터를 병합하는 과정에서 데이터가 증가하는 경우가 있었는데, 아무래도 DataFrame에 존재하는 중복 데이터가 원인인 것 같다. DataFrame에서 중복 데이터를 확인하고 제거하는 방법에 대해 적어둔다.
예시 데이터
위의 데이터를 예시로 중복된 데이터를 확인하고, 제거해 보자.
import pandas as pd
df = pd.DataFrame({
'brand': ['Yum Yum', 'Yum Yum', 'Indomie', 'Indomie', 'Indomie'],
'style': ['cup', 'cup', 'cup', 'pack', 'pack'],
'rating': [4, 4, 3.5, 15, 5]
})
duplicated
DataFrame.duplicated 함수는 전달받은 컬럼을 대상으로 중복 데이터가 존재하는지 확인한다.
기본적으로 맨 처음 조회된 데이터를 제외한 나머지를 중복이라고 판단한다. 만약 모든 중복 데이터를 확인하고 싶다면 keep 매개변수를 False로 지정하면 된다.
df.duplicated('brand')
중복을 확인할 컬럼이 여러 개라면 리스트 등으로 전달한다.
df.duplicated(['brand', 'style'])
drop_duplicates
drop_duplicates 함수는 데이터프레임에서 중복된 데이터를 삭제한 결과를 반환한다.
duplicated 함수와 동일하게 중복된 데이터 중 가장 처음에 조회된 행만 남기고 제거하는데, 모든 중복 데이터를 삭제하고 싶다면 keep 매개변수를 False로 지정하면 된다.
display(df.drop_duplicates('brand'))
중복을 확인할 컬럼이 여러 개라면 리스트 등으로 전달한다.
참고 문서
https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.duplicated.html
https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.drop_duplicates.html