반응형
Notice
Recent Posts
Recent Comments
Link
개발은 처음이라 개발새발
[python/pandas] 판다스 중복행 제거 본문
반응형
데이터를 다루다 보면 중복행이 종종 보이는 경우가 있습니다. 가공 작업을 진행하는 입장에서 표본이 적은 상황에서는 가볍게 엑셀에서 지워도 무방합니다. 하지만 세상 일이라는 게 그리 호락호락하지 않죠. 최근 겪을 일을 이야기해보자면 새로운 게임 스탯을 만들기 위해 분석하는 과정에서 행이 20만 개가 넘는 데이터를 다룰 때였습니다. 처음에는 중복된 것이 없는 줄 알았는데 특정 부분이 지나지체 많다 싶어 확인해보기 무려 3만 개가 넘는 중복행이 있던군요. ㅠㅠ 정말 막막했는데 판다스에서 간단한 코드를 해결할 수 있었습니다. 우선 예제를 만들어보겠습니다.
import pandas as pd
dict_data = {'goal':[23,23,2,1,15,17,23],
'assist':[7,13,12,7,8,9,7],
'keyPass': [72,63,90,39,87,50,72],
'bigChanceCreated':[10,18,18,8,16,19,10]}
df_pl = pd.DataFrame(dict_data, index=['손흥민','살라','아놀드','칸셀루','데브라이너','케인','손흥민'])
print(df_pl)
fotmob 사이트에서 확인할 수 있는 21/22시즌 PL 데이터를 가지고 예시를 들어봤습니다. 결과를 보면 손흥민 선수의 기록이 중복돼 들어가 있는 것을 확인할 수 있는데요. 이렇게 중복되는 데이터를 지우기 위해서는 drop_duplicates()함수를 사용하면 됩니다. 기본적으로 drop_duplicates()만 사용했을 때는 맨 처음 행만 남기고 뒤에 중복되는 행을 제거합니다. 그러면 코드를 작성해보겠습니다.
import pandas as pd
dict_data = {'goal':[23,23,2,1,15,17,23],
'assist':[7,13,12,7,8,9,7],
'keyPass': [72,63,90,39,87,50,72],
'bigChanceCreated':[10,18,18,8,16,19,10]}
df_pl = pd.DataFrame(dict_data, index=['손흥민','살라','아놀드','칸셀루','데브라이너','케인','손흥민'])
df_pl = df_pl.drop_duplicates()
print(df_pl)
네 이렇게 마지막 행에 있던 손흥민의 중복 데이터가 사라진 것을 확인할 수 있습니다. drop_duplicats()는 괄호 안에 컬럼을 지정한다든지 'keep = ' 매소드를 통해 처음 값을 남길지 아니면 마지막 값을 남길지에 대해서도 지정할 수 있습니다.
반응형
'파이썬 > 판다스' 카테고리의 다른 글
dropna() 파이썬 누락 데이터 제거 [python/seaborn] (0) | 2022.07.21 |
---|---|
isnull(), notnull() 누락 데이터 확인 [python/seaborn] (0) | 2022.07.19 |
손흥민 프리미어리그 시즌별 공격포인트 면적그래프로 나타내보기[python/matplotlib] (0) | 2022.07.10 |
matplotlib 다양한 스타일 (1) | 2022.07.03 |
matplotlib 한글 폰트 오류 해결 (0) | 2022.07.01 |