Python/NumPy | Pandas

[Pandas] DataFrame 중복 확인/제거

비번변경 2024. 2. 8. 22:39

개요

데이터를 병합하는 과정에서 데이터가 증가하는 경우가 있었는데, 아무래도 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

https://wikidocs.net/154060

https://rfriend.tistory.com/266