df.duplicated()
중복값 확인 시, 가장 먼저 나온 데이터는 중복값이 아닌 데이터로 보고 나머지값들을 중복값으로 인식한다.
모든 컬럼의 값이 동일해야 '중복값'으로 본다.
airbnb_df.duplicated() # 중복값 여부 확인, True면 중복값이고 False면 아님
airbnb_df.duplicated().sum() # 중복된 값의 총합 계산
airbnb_df[airbnb_df.duplicated(subset='id')] # 'id'가 중복된 값의 데이터 확인
# 중복값을 리스트로 줄 수도 있음
airbnb_df[airbnb_df.duplicated(subset=['id', 'n_review', 'price')] # subset의 3개의 값이 모두 동일하면 중복값
# keep='first'가 기본값이며, 처음 나온 값을 중복값이 아닌 것으로 인지함
# last는 마지막 나온 값이 중복값이 아닌 것으로 봄
airbnb_df[airbnb_df.duplicated(subset='id', keep='first')]
# keep=False는 겹치는 값들을 모두 중복값으로 봄
airbnb_df[airbnb_df.duplicated(subset='id', keep=False)]
df.drop_duplicates()
airbnb_df.drop_duplicated() # 중복값이 포함된 row를 제거함
# subset을 통해 특정 컬럼의 값만 동일해도 중복값으로 처리할 수 있음
airbnb_df.drop_duplicates(subset='id') # id 컬럼값이 동일하면 중복값
# keep='first' 중복값 중, 첫번째 값만 남기고 모두 삭제(last는 마지막 값을 남기고 모두 삭제)
airbnb_df.drop_duplicates(subset='id', keep='first')
예제)
효준이가 스마트폰 데이터를 수집할 때 중복으로 여러 번 입력한 데이터가 몇 개 있다고 합니다. cellphone_df에서 중복값은 1개씩만 남기고 나머지는 삭제해 주세요. 참고로 중복으로 입력한 데이터는 모든 컬럼에 있는 값들이 똑같다고 합니다.
주의 사항: 채점을 위해 가장 마지막 줄에는 cellphone_df라고 입력해서 DataFrame을 출력해 주세요.
import pandas as pd
cellphone_df = pd.read_csv('data/cellphone.csv')
cellphone_df = cellphone_df.drop_duplicates()
cellphone_df
결과