728x90
문제
Table: Followers
+-------------+------+
| Column Name | Type |
+-------------+------+
| user_id | int |
| follower_id | int |
+-------------+------+
(user_id, follower_id) is the primary key (combination of columns with unique values) for this table.
This table contains the IDs of a user and a follower in a social media app where the follower follows the user.
Write a solution that will, for each user, return the number of followers.
Return the result table ordered by user_id in ascending order.
https://leetcode.com/problems/find-followers-count/description/?lang=pythondata
예시
Input:
Followers table:
+---------+-------------+
| user_id | follower_id |
+---------+-------------+
| 0 | 1 |
| 1 | 0 |
| 2 | 0 |
| 2 | 1 |
+---------+-------------+
Output:
+---------+----------------+
| user_id | followers_count|
+---------+----------------+
| 0 | 1 |
| 1 | 1 |
| 2 | 2 |
+---------+----------------+
Explanation:
The followers of 0 are {1}
The followers of 1 are {0}
The followers of 2 are {0,1}
문제 풀이
import pandas as pd
def count_followers(followers: pd.DataFrame) -> pd.DataFrame:
# user_id 열 기준으로 그룹, 'follower_id' 고유값 개수 계산한 새 열 'followers_count' 반환
grouped = followers.groupby('user_id', as_index=False).agg(followers_count=('follower_id', 'nunique'))
# 'user_id' 열을 기준으로 오름차순 정렬
result = grouped.sort_values('user_id')
return result
파이썬을 독학하시는 분들에게 도움이 되길 바라며,
혹 더 좋은 방법이 있거나 오류가 있다면 편하게 말씀 부탁드립니다.
728x90