반응형
중복 데이터 다루기
데이터프레임에는 중복 로우가 존재할 수 있습니다. 중복 데이터가 계산 결과에 영향을 주는 의미있는 데이터가 아니라면
중복 데이터를 적절하게 처리하는 것이 필요할 수 있습니다.
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로 표시됨을 확인할 수 있습니다.
반응형
'Programming > Pandas' 카테고리의 다른 글
[Pandas] 데이터 연결 (concat), 인덱스 연결 (0) | 2022.01.07 |
---|---|
[Pandas] 데이터 변경해서 새로운 컬럼생성 (MDD 컬럼) (0) | 2022.01.07 |
[Pandas] 모든 컬럼이 NaN일 때만 삭제하기 (0) | 2022.01.03 |
[Pandas] 데이터프레임 로우, 컬럼 정보 확인하기 (0) | 2022.01.02 |
[Pandas] 리인덱싱 (0) | 2022.01.01 |