데이터 다루기

[DataFrame] pandas DataFrame 중복 행 제거, 인덱스 초기화

1sr11s 2023. 8. 29. 23:35

📌중복 행 제거

DataFrame에서 중복행을 제거하기 위해선 방법은 drop_duplicates()뿐이다.

파라미터는 다음과 같다.

DataFrame.drop_duplicates(subset=None, 
                            keep='first', 
                            inplace=False,
                            ingnore_index=False)
  • subset : 해당컬럼 기준으로 중복 행을 제거한다. 아무것도 쓰지 않으면 모든 컬럼을 기준으로 중복행을 제거한다.
  • keep : {'first'.'last',False}
    • 디폴트 값은 first
    • first : 첫번째에 위치한 것 빼고 다 지운다.
    • last : 마지막에 위치한 것 빼고 다 지운다.
    • False : 모두 다 지운다.
  • inplace : True, False
    • 디폴트 False
    • 기존 데이터프레임에 반영 여부
  • ignore_index : True, False
    • 디폴트는 False
    • 인덱스 재구성 여부
    • reset_index와 같은 개념

🔍2개 이상의 컬럼을 비교해 중복을 제거

비교 대상이 2개 이상의 컬럼일 때, 즉 A와 B의 컬럼이 모두 같은 값을 갖는 경우일 때 컬럼을 리스트로 작성

DataFrame.drop_duplicates(subset=['첫번째행', '두번째행'], 
                            keep='first', 
)

📌인덱스 초기화

중복행을 지우고 난뒤 인덱스를 재구성하지 않으면 loc를 쓸 때 어려움多
즉 중복행을 지운 데이터 프레임을 계속 사용시 인덱스 리셋하는 습관 기르기!!
ingnore_index=True와 reset_index는 같은 효과로 인덱스를 재구성함

  • 인덱스 초기화 두가지 방법
    #첫번째 방법
    DataFrame.drop_duplicates(subset=None, 
                              keep='first', 
                              ingnore_index = True
    )
    
    #두번째 방법
    DataFrame.drop_duplicates(subset=None,
    keep='first'
    ).reset_index(drop=True)