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열이 추가된 데이터 프레임 |
![]() |
![]() |