Ming's Life

[내일배움캠프] 20일차 본문

내일배움캠프

[내일배움캠프] 20일차

chamiii 2025. 6. 10. 22:04

1. 오늘 학습 키워드

  • 파이썬 개인과제
  • 파이썬 공부

 


 

2. 오늘 학습 한 내용을 나만의 언어로 정리하기

 

  • 배경: Pandas의 read_csv 함수는 로컬에 저장된 자료 이외에도 인터넷에 있는 자료를 바로 불러올 수 있는 기능을 지원합니다. 또한 구분자가 쉼표(,)가 아니더라도 받아올 수 있습니다.
  • 문제 의도
    • pandas의 read_csv 함수의 이해
    • ‘sep’ 전달 인자의 이해
  • 요구 사항
import pandas as pd
url = 'https://raw.githubusercontent.com/llm-bot-sparta/sparta_coding/refs/heads/main/flight_data.csv'
def get_csv(url):
	df = 	pd.read_csv(url, sep = ';')
	return df

 

 

  • 배경: 데이터를 불러 왔을 때 각 컬럼에 결측치 유무를 확인하는 것은 중요합니다. 컬럼의 결측치를 확인해보세요.
  • 문제 의도
    • DataFrame의 함수를 활용
  • 요구 사항
    • 함수명: get_missing
    • 컬럼별 결측치 수를 예시 결과와 같이 출력
import pandas as pd
df = get_csv(url) # 1번에서 불러온 df
def get_missing(data):
	return df.isnull().sum()

 

 

  • 배경: Destination 기준으로 price에 대한 평균과 중앙 값을 동시에 구해주세요. 단, 값은 소수점 첫 번째 자리까지 표현해주세요.
  • 문제 의도
    • DataFrame의 집계 함수를 사용
  • 요구 사항
    • 함수명: get_price
    • Destination 을 인덱스로, 평균과 중앙값을 컬럼으로하는 데이터프레임 반환
    • 소수점 첫 번째 짜리까지 반올림
    • 정렬은 필수사항 아님
import pandas as pd
df = get_csv(url)
def get_price(df):
    result = df.groupby("Destination")["Price"].agg(["mean", "median"]).round(1)
    return result

 

 

  • 배경: 특정한 날짜(Ex 수요일) 에 대한 평균 예약 금액을 조회하겠습니다.
  • 문제 의도
    • 날짜형 자료형 이해
    • 불리언 인덱싱 활용
    • Hint
      1. 기존 날짜형 자료형을 바꿀 함수 찾기
      2. Series의 dt의 함수 알아보기
    • 문제의 푸는 방법은 단 1개가 아니며 여러가지가 나올 수 있음
  • 요구 사항
    • 함수명: get_wed_price
    • 결과 값은 소수 값 1개가 나와야합니다.
    • 소수점 첫 번째 짜리까지 반올림
import pandas as pd
df = get_csv(url) # 1번에서 불러온 df
def get_wed_price(df):
    df['Date_of_Journey'] = pd.to_datetime(df['Date_of_Journey'], dayfirst=True)
    wed_df = df[df['Date_of_Journey'].dt.day_name() == 'Wednesday']
    return round(wed_df["Price"].mean(),1)

 

 

  • 배경: 출발 시간마다 비행기 출발의 편차가 있는지 확인해보려합니다. 요구사항에 맞춰 아침,밤,오후,저녁으로 분류하여 수를 세보세요.
  • 문제 의도
    • 날짜형 자료형의 이해
    • .apply 함수를 통한 기존 자료 재정의
    • lambda 혹은 함수를 DataFrame에 적용하기
  • 요구 사항
    • 함수명: get_cat
    • Dep_Time 컬럼 기준 아침(5시 이상 12시 미만), 오후(12시 이상 18시 미만), 저녁(18시 이상 24시 미만), 그 외시간 밤
    • Airline 수 기준으로 내림차순 정렬 해주세요.
    • 최종 결과물은 예시 결과와 같이 reset_index() 를 적용해주세요.
import pandas as pd

def get_cat(df):
    df['Dep_Time'] = pd.to_datetime(df['Dep_Time'], format='%H:%M', errors='coerce')

    df['Dep_Time_Category'] = df['Dep_Time'].apply(
        lambda x: (
            '아침' if 5 <= x.hour < 12 else
            '오후' if 12 <= x.hour < 18 else
            '저녁' if 18 <= x.hour < 24 else
            '밤'
        ) if pd.notnull(x) else '알 수 없음')

    result = df['Dep_Time_Category'].value_counts().reset_index()
    result.columns = ['Time_Of_Day', 'Airline']

    return result

 

 

3. 학습하며 겪었던 문제점 & 에러 

 

반복 학습 필요

 

4. 내일 학습 할 것은 무엇인지 

 

SQL / Python 코드카타 , 파이썬 공부

'내일배움캠프' 카테고리의 다른 글

[내일배움캠프] 24일차  (0) 2025.06.16
[내일배움캠프] 21일차 _ 클래스  (1) 2025.06.11
[내일배움캠프] 19일차  (0) 2025.06.09
[내일배움캠프] 18일차  (0) 2025.06.05
[내일배움캠프] 17일차  (0) 2025.06.04