KATA#102

codataffee·2024년 8월 7일
0

CODEKATA

목록 보기
102/114
post-thumbnail

WHAT IS KATA?

KATA는 기술과 기술 향상에 초점을 맞춘 코드 챌린지입니다.
일부는 프로그래밍 기본 사항을 교육하는 반면 다른 일부는 복잡한 문제 해결에 중점을 둡니다.

이 용어는 The Pragmatic Programmer 라는 책의 공동 저자인 Dave Thomas 가
무술에서 일본의 카타 개념을 인정하면서 처음 만들어졌습니다.
Dave의 개념 버전은 코드 카타를 프로그래머가
연습과 반복을 통해 기술을 연마하는 데 도움이 되는 프로그래밍 연습으로 정의합니다.


리트코드 - 판다스 30일 문제


- PYTHON


✔️ 문제 #1: Customers Who Never Order

✔️ 제출 코드

✔️ 코드 분석

import pandas as pd

def find_customers(customers: pd.DataFrame, orders: pd.DataFrame) -> pd.DataFrame:
    merged_df = pd.merge(customers, orders, left_on = 'id', right_on = 'customerId', how = 'left')
    no_order_customers = merged_df[merged_df['customerId'].isnull()][['name']]
    no_order_customers.columns = ['Customers']
    return no_order_customers.reset_index(drop = True)

✔️ 문제 #2: Article Views I

✔️ 제출 코드

✔️ 코드 분석

import pandas as pd

def article_views(views: pd.DataFrame) -> pd.DataFrame:
    self_viewed = views[views['author_id'] == views['viewer_id']]
    unique_authors = self_viewed['author_id'].drop_duplicates().reset_index(drop = True)
    result = unique_authors.to_frame(name = 'id')
    result = result.sort_values(by = 'id').reset_index(drop = True)
    return result

✔️ CHECK POINT

  • PANDAS

    • 두 테이블의 프라임 키가 다를 때, 매개변수를 활용해 MERGE 하기 :

      merged_df = pd.merge(customers, orders, left_on = 'id', right_on = 'customerId', how = 'left')
    • Null 값 필터링 :

      no_order_customers = merged_df[merged_df['customerId'].isnull()][['name']]
    • 결과 데이터프레임 컬럼명 변경 :

      no_order_customers.columns = ['Customers']
    • 조건을 만족하는 행 필터링 :

      self_viewed = views[views['author_id'] == views['viewer_id']]
    • 정렬 및 인덱스 리셋 :

      result = result.sort_values(by = 'id').reset_index(drop = True)

profile
커피 좋아하는 데이터 꿈나무

0개의 댓글

관련 채용 정보