본문 바로가기
Data Analysis/Query

leetcode : 182. Duplicate Emails

by 베짱이28호 2024. 12. 30.

leetcode : 182. Duplicate Emails


다이어그램

erDiagram
    User {
        int id PK
        varchar email
    }

목표

Write a solution to report all the duplicate emails. Note that it's guaranteed that the email field is not NULL.

Return the result table in any order.


 

문제 풀이

MySQL

# Solution 1
SELECT EMAIL
FROM PERSON
GROUP BY EMAIL
HAVING COUNT(*) > 1
  • Solution1 : GROUP BY + HAVING

Pandas

# Solution 1
def duplicate_emails(person: pd.DataFrame) -> pd.DataFrame:

    email_count = person['email'].value_counts().reset_index()
    cond = email_count['count'] >= 2
    return email_count[cond][['email']].rename(columns={'email':'Email'})

    # email_count = pd.DataFrame(person['email'].value_counts()).reset_index(names=['Email','count'])
    # cond = email_count['count'] >= 2
    # return email_count[cond][['Email']]
  • solution 1: value_counts
    • 기준 이메일도 반환하기 위해서 reset index 사용.
    • 반환된 시리즈를 데이터프레임으로 만들어서 바로 reset_index의 names로 넣는것도 나쁘지 않아보인다.
    • columns는 rename하거나 capitalize하거나

코멘트

  • .

댓글