1) TIL에 꼭 들어가야 하는 내용

  1. 어떤 문제가 있었는지
  2. 내가 시도해본 것들
  3. 어떻게 해결했는지
  4. 무엇을 새롭게 알았는지

 

1. 데이터프레임에 json 형식의 데이터가 있었음

2. 검색 검색

3. 두 가지 방법이 있음.

json.load 함수를 쓰거나, eval 함수를 쓰거나

4. json 타입과 eval 함수에 대해서 알게되었다.

'일상 > TIL' 카테고리의 다른 글

[250102] TIL  (0) 2025.01.02
[TIL] 241227  (0) 2024.12.27
[TIL] 241225  (0) 2024.12.24
[241213] TIL  (0) 2024.12.23
[241220] TIL  (1) 2024.12.20

[문제]

https://leetcode.com/problems/percentage-of-users-attended-a-contest/description/

 

 

[풀이]

1. register 테이블에서 contest_id 별로 유저 수를 계산한다.

2. 계산한 유저 수를 총 유저 수로 나누어서 비율(percentage을 구해준다.

3. percentage 를 내림차순 정렬, contest_id 를 오름차순 정렬 해준다.

 

Pandas

def users_percentage(users: pd.DataFrame, register: pd.DataFrame) -> pd.DataFrame:
    grouped = register.groupby('contest_id')['user_id'].count().reset_index(name='user_cnt')
    grouped['percentage'] = round(grouped['user_cnt'] / len(users) * 100, 2)
    grouped.sort_values(by=['percentage', 'contest_id'], ascending=[False, True], inplace=True)
    
    return grouped[['contest_id', 'percentage']]

 

SQL

SELECT 
    contest_id
    , ROUND(COUNT(user_id)/(SELECT COUNT(user_id) FROM Users)*100, 2) AS percentage 
FROM Register
GROUP BY contest_id
ORDER BY percentage DESC, contest_id

'코드카타 > Pandas' 카테고리의 다른 글

Monthly Transactions I  (0) 2024.12.30
Queries Quality and Percentage  (1) 2024.12.27
Project Employees I  (0) 2024.12.26
Average Selling Price  (0) 2024.12.25
Not Boring Movies  (0) 2024.12.25

[문제]

https://leetcode.com/problems/project-employees-i/description/

 

 

[풀이]

1. project 테이블을 기준으로 left join 을 해준다.

2. project_id 별로 experience_years의 평균을 구해주는데 소수점 둘째 자리까지 반올림 해준다.

3. 컬럼명을 average_years 로 변경해준다.

 

Pandas

import pandas as pd

def project_employees_i(project: pd.DataFrame, employee: pd.DataFrame) -> pd.DataFrame:
    
    return project.merge(employee, how='left').groupby('project_id')['experience_years'].mean().round(2).reset_index(name='average_years')

 

SQL

# Write your MySQL query statement below
SELECT p.project_id
       , ROUND(AVG(experience_years), 2) AS average_years
FROM Project p
LEFT JOIN Employee e
    ON p.employee_id = e.employee_id
GROUP BY p.project_id

'코드카타 > Pandas' 카테고리의 다른 글

Queries Quality and Percentage  (1) 2024.12.27
Percentage of Users Attended a Contest  (0) 2024.12.26
Average Selling Price  (0) 2024.12.25
Not Boring Movies  (0) 2024.12.25
Confirmation Rate  (0) 2024.12.24

+ Recent posts