본문 바로가기
Programming/Pandas

[Pandas] 중복 데이터 제거하기

by 느리게 걷는 즐거움 2022. 1. 4.
728x90
반응형

중복 데이터 다루기

데이터프레임에는 중복 로우가 존재할 수 있습니다. 중복 데이터가 계산 결과에 영향을 주는 의미있는 데이터가 아니라면
중복 데이터를 적절하게 처리하는 것이 필요할 수 있습니다.

df_duplicated = pd.DataFrame({'city': ['seoul']*3 + ['busan']*2,
                              'num' : ['02'] *3 + ['051']*2})
df_duplicated

city num
0 seoul 02
1 seoul 02
2 seoul 02
3 busan 051
4 busan 051

도시 이름에 맞는 지역번호를 정보로 저장하는 데이터프레임으로 생성합니다. city 컬럼 정보를 이용하여 지역번호를
확인하기 위해 데이터프레임을 사용한다면 city정보가 중복될 필요가 없습니다. 중복되는 데이터를 정리합니다.

df_duplicated.duplicated()
0    False
1     True
2     True
3    False
4     True
dtype: bool

.duplicated()를 사용하면 불리언값으로 중복된 로우정보를 리턴합니다. 0번째 로우인 'seoul'과 중복된 값인 1번째, 2번째 로우가 Ture로 표시됨을 확인할 수 있습니다.

df_duplicated.drop_duplicates()

city num
0 seoul 02
3 busan 051

.drop_duplicates()를 사용하면 중복된 로우를 삭제한 데이터프레임을 리턴합니다.
위와 같이 중복된 로우가 제거된 새로운 데이터프레임이 표시됨을 확인할 수 있습니다.

df_duplicated.drop_duplicates(keep='last')

city num
2 seoul 02
4 busan 051

중복을 제거할 때 남겨놓을 로우를 결정할 수 있습니다. 위와 같이 keep='last'로 설정하면
마지막 중복 로우를 남기고 나머지를 삭제합니다.
처음 데이터프레임과 달리 seoul로 표시된 로우의 인덱스가 2로 표시됨을 확인할 수 있습니다.

728x90
반응형