[파이썬] 판다스 중복 컬럼 찾기

조회수 82회

데이터 프레임에서 중복 값을 찾고 싶습니다.

예시

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 |
    >>> 
    

    둘을 결합.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)