728x90
문제
Table: Person
+-------------+---------+
| Column Name | Type |
+-------------+---------+
| id | int |
| email | varchar |
+-------------+---------+
id is the primary key (column with unique values) for this table.
Each row of this table contains an email. The emails will not contain uppercase letters.
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.
https://leetcode.com/problems/duplicate-emails/description/?lang=pythondata
예시
Input:
Person table:
+----+---------+
| id | email |
+----+---------+
| 1 | a@b.com |
| 2 | c@d.com |
| 3 | a@b.com |
+----+---------+
Output:
+---------+
| Email |
+---------+
| a@b.com |
+---------+
Explanation: a@b.com is repeated two times.
문제 풀이
1. email 열이 중복되었는지 확인 (keep 매개변수 default로 'first' 사용)
2. email열이 중복된 행을 데이터프레임 형태로 반환 (첫번째는 중복 False로 제외되고, 나머지가 포함됨)
3. 중복 제외하여 정답 제출
최종 정답 코드
import pandas as pd
def duplicate_emails(person: pd.DataFrame) -> pd.DataFrame:
result = person.loc[person.duplicated(subset=['email']), ['email']]
return result.drop_duplicates()
파이썬을 독학하시는 분들에게 도움이 되길 바라며,
혹 더 좋은 방법이 있거나 오류가 있다면 편하게 말씀 부탁드립니다.
728x90