Blair  - Soul Eater 1633. Percentage of Users Attended a Contest

• data analysis/PYTHON

1633. Percentage of Users Attended a Contest

oujin 2024. 2. 28. 22:57
728x90

테이블 생성 코드

data = [[6, 'Alice'], [2, 'Bob'], [7, 'Alex']]
users = pd.DataFrame(data, columns=['user_id', 'user_name']).astype({'user_id':'Int64', 'user_name':'object'})
data = [[215, 6], [209, 2], [208, 2], [210, 6], [208, 6], [209, 7], [209, 6], [215, 7], [208, 7], [210, 2], [207, 2], [210, 7]]
register = pd.DataFrame(data, columns=['contest_id', 'user_id']).astype({'contest_id':'Int64', 'user_id':'Int64'})

 

 

문제

 

 

 

해결코드

import pandas as pd

def users_percentage(users: pd.DataFrame, register: pd.DataFrame) -> pd.DataFrame:
    df = register.groupby('contest_id', as_index=False).agg(count=('user_id','nunique'))
    df['percentage'] = df['count']/len(users)*100
    return df[['contest_id','percentage']].sort_values(by=['percentage', 'contest_id'], ascending=[False, True]).round(2)
   

 

 

 

해설

 

 

 

 

 

 

 

 

728x90

'• data analysis > PYTHON' 카테고리의 다른 글

595. Big Countries  (0) 2024.02.29
1667. Fix Names in a Table  (0) 2024.02.27
1075. Project Employees I  (0) 2024.02.26
610. Triangle Judgement  (0) 2024.02.24
1068. Product Sales Analysis I  (0) 2024.02.22