[파이썬] 판다스 중복 컬럼 찾기
조회수 162회
데이터 프레임에서 중복 값을 찾고 싶습니다.
예시
Sentence_org Sentence
가나다 라마바 가나다라마바
가나 다라 가나다라
아자차카 타파 아자차카타파
가나다라 가나다라
Sentence 컬럼을 기준으로 전체 데이터 프레임의 중복 값을 찾아
Sentence_org Sentence Count
가나다 라마바 가나다라마바 0
가나 다라 가나다라 1
아자차카 타파 아자차카타파 0
위와 같이 하고 싶습니다. 감사합니다.
1 답변
-
>>> import pandas as pd >>> df = pd.DataFrame({ "sent0":["가나다라 라마바", "가나 다라", "아자차카", "가나다라"], "sent":["가나다라마바", "가나다라", "아자차카타파", "가나다라"] }) >>> print(df.to_markdown()) | | sent0 | sent | |---:|:----------------|:-------------| | 0 | 가나다라 라마바 | 가나다라마바 | | 1 | 가나 다라 | 가나다라 | | 2 | 아자차카 | 아자차카타파 | | 3 | 가나다라 | 가나다라 | >>> df.duplicated("sent") 0 False 1 False 2 False 3 True dtype: bool >>> df_ = df[~df.duplicated("sent")] >>> print(df_.to_markdown()) | | sent0 | sent | |---:|:----------------|:-------------| | 0 | 가나다라 라마바 | 가나다라마바 | | 1 | 가나 다라 | 가나다라 | | 2 | 아자차카 | 아자차카타파 |
pd.DataFrame.duplicated 를 잘 이용해서 중복을 제거.
>>> count = df.groupby("sent").size() >>> count sent 가나다라 2 가나다라마바 1 아자차카타파 1 dtype: int64
groupby 로 갯수를 저장해 놓음.
>>> df__ = df_.set_index("sent") >>> df__["count"] = count - 1 >>> df__ sent0 count sent 가나다라마바 가나다라 라마바 0 가나다라 가나 다라 1 아자차카타파 아자차카 0 >>> df___ = df__.reset_index() >>> print(df___.to_markdown()) | | sent | sent0 | count | |---:|:-------------|:----------------|--------:| | 0 | 가나다라마바 | 가나다라 라마바 | 0 | | 1 | 가나다라 | 가나 다라 | 1 | | 2 | 아자차카타파 | 아자차카 | 0 | >>>
둘을 결합.
댓글 입력