[Python] 데이터프레임 중복 제거 :: drop_duplicates
반응형
데이터프레임에서 중복되는 행을 제거하고 고유한 값만 남기고 싶을 때 Pandas의 drop_duplicates를 활용하면 된다.
import pandas as pd
# 중복제거
df.drop_duplicates(subset=None, keep='first', inplace=False, ignore_index=False)
예시데이터
df = pd.DataFrame({'Num':[1, 2, 1, 2, 2, 3],
'Alphabet':['a', 'b', 'a', 'b', 'a', 'b']})
df
중복이 있는 예시데이터를 생성하였다.
1. 중복제거
df.drop_duplicates()
아무것도 지정하지 않고 그냥 drop_duplicates를 할 경우 모든 열(column)을 기준으로 중복을 제거한다.
예시데이터에서 ['Num', 'Alphabet']을 쌍으로 취급하여 중복을 제거하였기에 각 열에는 여전히 중복되는 데이터가 남아있다.
2. 열 지정하여 중복제거
df.drop_duplicates(['col'])
파라미터로 열을 지정해주면 지정된 열을 기준으로 중복을 제거해준다.
3. 남길 대상 지정
# 첫 번째만 남기기
ex.drop_duplicates(['col'], keep = 'first')
# 마지막만 남기기
ex.drop_duplicates(['col'], keep = 'first')
# 모두 제거
ex.drop_duplicates(['col'], keep = False)
중복되는 데이터 중에서 어떤 행을 남길지 지정할 수 있다.
1) 첫 번째만 남기기
: 인덱스 기준으로 가장 앞에 있는 행만 남음
2) 마지막만 남기기
: 인덱스 기준으로 가장 마지막에 있는 행만 남음
3) 모두 제거
: 중복되는 데이터가 있는 모든 행 제거
4. 인덱스 재설정(Reset Index)
ex.drop_duplicates(['col'], ignore_index = True)
기존의 인덱스를 따랐기 때문에 중복을 제거한 후에는 사라진 행의 인덱스가 비게 된다.
이때 ignore_index를 이용하면 인덱스를 재설정해줄 수 있다.
728x90
'Python > Pandas' 카테고리의 다른 글
[Python] read_excel 오류 :: install xlrd (0) | 2020.11.19 |
---|---|
[Python] 엑셀 불러오기 :: pd.read_excel (3) | 2020.11.19 |
[Python] 데이터프레임 합치기 :: pd.merge() (0) | 2020.10.13 |
[Python] 데이터프레임 txt로 저장하기 (0) | 2020.09.04 |
[Python] df.copy() :: 복사본 만들기 / 얕은복사 & 깊은 복사 (0) | 2020.06.18 |
Comments