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하거나
코멘트
- .
'Data Analysis > Query' 카테고리의 다른 글
leetcode : 185. Department Top Three Salaries (0) | 2024.12.31 |
---|---|
leetcode : 184. Department Highest Salary (0) | 2024.12.31 |
leetcode : 183. Customers Who Never Order (0) | 2024.12.30 |
leetcode : 180. Consecutive Numbers (0) | 2024.12.29 |
leetcode : 178. Rank Scores (0) | 2024.12.29 |
leetcode : 177. Nth Highest Salary (0) | 2024.12.28 |
leetcode : 176. Second Highest Salary (0) | 2024.12.28 |
댓글