Table: Activity
+--------------+---------+
| Column Name | Type |
+--------------+---------+
| player_id | int |
| device_id | int |
| event_date | date |
| games_played | int |
+--------------+---------+
(player_id, event_date)는 이 테이블의 기본 키(고유한 값을 가지는 열의 조합)입니다.
이 테이블은 일부 게임의 플레이어 활동을 보여줍니다.
각 행은 플레이어가 로그인하고 특정 장치를 사용하여 그날 게임을 몇 번 했는지(0번일 수도 있음) 후 로그아웃한 기록을 나타냅니다.
문제
각 플레이어의 첫 번째 로그인 날짜를 찾는 해결책을 작성하십시오.
결과 테이블은 아무 순서로 반환해도 됩니다.
결과 형식은 다음 예시와 같습니다.
Example 1:
Input:
Activity table:
+-----------+-----------+------------+--------------+
| player_id | device_id | event_date | games_played |
+-----------+-----------+------------+--------------+
| 1 | 2 | 2016-03-01 | 5 |
| 1 | 2 | 2016-05-02 | 6 |
| 2 | 3 | 2017-06-25 | 1 |
| 3 | 1 | 2016-03-02 | 0 |
| 3 | 4 | 2018-07-03 | 5 |
+-----------+-----------+------------+--------------+
Output:
+-----------+-------------+
| player_id | first_login |
+-----------+-------------+
| 1 | 2016-03-01 |
| 2 | 2017-06-25 |
| 3 | 2016-03-02 |
+-----------+-------------+
풀이
import pandas as pd
def game_analysis(activity: pd.DataFrame) -> pd.DataFrame:
result = activity.groupby('player_id')['event_date'].min().reset_index(name='first_login')
return result
playr_id 별 첫 로그인 날짜를 찾기 위해 event_date의 min()을 구함
'[코딩테스트] > [Pandas]' 카테고리의 다른 글
[LeetCode - Pandas] (Easy) 196. Delete Duplicate Emails (0) | 2025.05.06 |
---|---|
[LeetCode - Pandas] (Easy) 197. Rising Temperature (0) | 2025.05.05 |
[LeetCode - Pandas] (Easy) 577. Employee Bonus (0) | 2025.05.02 |
[LeetCode - Pandas] (Easy) 584. Find Customer Referee (0) | 2025.04.30 |
[LeetCode - Pandas] (Easy) 586. Customer Placing the Largest Number of Orders (0) | 2025.04.30 |