MLOps 부트캠프 by 한경+토스뱅크/Python

DataFrame - 날짜와 시간 연산

나니니 2024. 8. 4. 23:16

timedelta

: 두 시점 사이의 시간 차이를 나타내는데 사용됨

order_df['shipping_time'] - order_df.index

pd.to_timedelta(order_df['days_for_shipping(expected)'], unit='D']

# unit='D': day인 1을 기준으로 timedelta가 설정됨
# 	H: 시간 / P: 분 / S: 초 단위

예제

 배달 음식이 고객에게 도착한 시각을 계산해 봅시다. 주문 시각(order_time)과 배달 소요 시간(time_taken)을 가지고 배달 완료 시간을 계산해서 DataFrame에 delivery_time이라는 컬럼을 추가해 주세요! 참고로 time_taken 컬럼은 배달에 몇 분이 소요되었는지를 의미하므로, 아래 출력 결과처럼 분을 기준으로 한 Timedelta로 바꿔 주세요. 참고로 분을 의미하는 코드는 T 입니다.

import pandas as pd

delivery_df = pd.read_csv('data/delivery.csv', parse_dates=['order_time'])

# to_timedelta() 함수를 사용해서 time_taken 컬럼을 분(T)을 기준으로 Timedelta로 변경
delivery_df['time_taken'] = pd.to_timedelta(delivery_df['time_taken'], unit='T')

# order_time과 time_taken을 더해 delivery_time 컬럼에 저장
delivery_df['delivery_time'] = delivery_df['order_time'] + delivery_df['time_taken']

delivery_df