Python/Pandas

[Pandas] 데이터 중복 제거

yeonny_do 2023. 11. 13. 08:34

※  데이터 준비

 
import pandas as pd
import numpy as np

df = pd.DataFrame({'k1':['one','two']*3+['two'],
                   'k2':[1,1,2,3,3,4,4]})
df
 

 

 

 

 


 

■ 중복 데이터 검사

 

- df.duplicated()
- 각 행의 중복 여부를 검사하여 True/False로 알려줌

 

 
df.duplicated()
 

 

 

 

  □ df. drop_duplicates()

    : 모든 컬럼에 대해 중복값을 갖는 행을 제거함

 

 
df.drop_duplicates()
 

 

중복 값이 존재하는 행 지우기 원본

 

 

 

□ df. drop_duplicates(컬럼명 목록)

 

   - 매개변수로 주어진 컬럼명 목록에 같은 값을 갖는 행 제거함

   - unique 값 하나만 남기고 나머지 다 삭제

 

 
df['k3'] = np.arange(7)
df
 
 
df.drop_duplicates(['k1','k2'])
 
[k1,k2] 목록에 같은 값을 갖는 행 제거(6행 제거됨) k3열이 추가된 데이터 프레임

 

 

□ keep = 'last' 파라미터

 

   - drop_duplicates()는 기본적으로 처음 발견된 값을 유지함

   - keep='last' 옵션을 지정하면 중복된 값들 중 마지막으로 발견된 값을 유지함

 

 
df.drop_duplicates(['k1','k2'],keep='last')
 

 

[k1,k2] 목록에 같은 값을 갖는 행 제거(5행 제거됨) k3열이 추가된 데이터 프레임