최근들어 작업형1에서 시계열 데이터 문제가 출제되고 있음 (⭐️)
import pandas as pd
data = {
'Date1': ['2024-02-17', '2024-02-18', '2024-02-19'],
'Date2': ['2024:02:17', '2024:02:18', '2024:02:19'],
'Date3': ['24/02/17', '24/02/18', '24/02/19'],
'Date4': ['02/17/2024', '02/18/2024', '02/19/2024'],
'Date5': ['17-Feb-2024', '18-Feb-2024', '19-Feb-2024'],
'Date6': ['2024년02월17일', '2024년02월18일', '2024년02월19일'],
'DateTime1': ['24-02-17 11:45:30', '24-02-18 12:55:45', '24-02-19 13:30:15'],
'DateTime2': ['2024-02-17 11-45-30', '2024-02-18 12-55-45', '2024-02-19 13-30-15'],
'DateTime3': ['02/17/2024 11:45:30 AM', '02/18/2024 12:55:45 PM', '02/19/2024 01:30:15 PM'],
'DateTime4': ['17 Feb 2024 11:45:30', '18 Feb 2024 12:55:45', '19 Feb 2024 13:30:15']
}
df = pd.DataFrame(data)
df.to_csv("date.csv", index=False)
df
아래와 같은 데이터프레임이 있다고 가정했을 때,

Date1(ex. 2024-02-17)을 처리할 때 pd.to_datetime을 사용해서 object형태의 데이터를 datetime형태로 변환해준다.
df = pd.read_csv("date.csv")
pd.to_datetime(df['Date1'])
Date2(ex. 2024:02:17)를 처리할 때는 동일하게 pd.to_datetime을 사용하지만 '-'가 아닌 시간을 구분하는 ':'으로 구분되어 있기 때문에 pd.to_datetime에 format="%Y:%m:%d"을 설정해줘야 한다.
df = pd.read_csv("date.csv")
pd.to_datetime(df['Date2'], format="%Y:%m:%d")
Date3(ex. 24/02/17)을 처리할 때는 format 설정해주지 않아도 된다.
df = pd.read_csv("date.csv")
pd.to_datetime(df['Date3'], format="%y/%m/%d")
Date4(ex. 02/17/2024)와 Date5(ex.17-Feb-2024)도 마찬가지
df = pd.read_csv("date.csv")
pd.to_datetime(df['Date4'])
pd.to_datetime(df['Date5'])
Date6(ex.2024년2월17일)은 format에 '년' '월' '일'을 넣어준다.
df = pd.read_csv("date.csv")
pd.to_datetime(df["Date6"], format="%Y년%m월%d일")
DateTime1(ex.24-02-17 11:45:30)은 format에 "%y-%m-%d %H:%M:%S" 해주면 된다.
df = pd.read_csv("date.csv")
pd.to_datetime(df['DateTime1'], format="%y-%m-%d %H:%M:%S")
DateTime2(ex.2024-02-17 11-45-30)는 format에 "%Y-%m-%d %H-%M-%S" 해주면 된다.
df = pd.read_csv("date.csv")
pd.to_datetime(df["DateTime2"], format="%Y-%m-%d %H-%M-%S")
DateTime3(ex.02/17/2024 11:45:30 AM)과 DateTime4(ex.17 Feb 2024 11:45:30)는 format 해주지 않아도 된다.
df = pd.read_csv("date.csv")
pd.to_datetime(df["DateTime3"])
pd.to_datetime(df["DateTime4"])
시간형식 지정자
| 시간 형식 지정자 | 의미 | 결과 |
| %a | 요일 (짧은 이름) | Sun, Mon, ..., Sat |
| %A | 요일 (긴 이름) | Sunday, Monday... |
| %w | 요일 (숫자, 0부터 일요일) | 0, 1, 2, 3, 4, 5, 6 |
| %d | 날짜 (2자리) | 01, 02, ...., 31 |
| %b | 월 (짧은 이름) | Jan, Feb, ..., Dec |
| %B | 월 (긴 이름) | January, Feburary,... |
| %m | 월 (숫자) | 01, 02, ..., 12 |
| %y | 연 (2자리) | 00, 01, ..., 99 |
| %Y | 연 (4자리) | 1960, 2002, 2020, ... |
| %H | 시간 (24시간) | 00, 01, ..., 23 |
| %I | 시간 (12시간) | 01, 02, ..., 12 |
| %M | 분 (2자리) | 00, 01, ..., 59 |
| %S | 초 (2자리) | 00, 01, ..., 59 |
자료형 확인
df.info()

데이터프레임이 datetime 형태일 경우에는 dt를 사용해 년, 월, 일, 시, 분, 초를 추출할 수 있다.
# 년, 월, 일, 시간, 분, 초 추출
df['year'] = df["DateTime4"].dt.year
df['month'] = df["DateTime4"].dt.month
df['day'] = df["DateTime4"].dt.day
df['hour'] = df["DateTime4"].dt.hour
df['minute'] = df["DateTime4"].dt.minute
df['second'] = df["DateTime4"].dt.second
df

요일 추출할 땐 dayofweek 사용
#요일 dayofweek 0:월, 1:화, 2:수, 3:목, 4:금, 5:토, 6:일
df['DateTime4'].dt.dayofweek
#만약 주말만 뽑고 싶을 땐
df['is주말'] = df['DateTime4'].dt.dayofweek >= 5
df
기간을 뽑을 때는 to_period를 사용해도 된다. 하지만 그냥 dt사용해서 뽑아내고 조건문으로 추출하면 더 편하기 때문에 참고만 할 것
# [참고] 기간 to_period()
print(df['DateTime4'].dt.to_period('Y')) # 또는 A
print(df['DateTime4'].dt.to_period('Q'))
print(df['DateTime4'].dt.to_period('M'))
print(df['DateTime4'].dt.to_period('D'))
print(df['DateTime4'].dt.to_period('H'))'Data > 빅데이터분석기사' 카테고리의 다른 글
| [빅데이터분석기사] 작업형1 모의문제1+2 (0) | 2025.06.13 |
|---|---|
| [빅데이터분석기사] 판다스7-시계열데이터2 (0) | 2025.06.12 |
| [빅데이터분석기사] 판다스5 - 그룹핑, 병합, 피벗테이블 (1) | 2025.06.10 |
| [빅데이터분석기사] 판다스4 - 문자열, 내장함수 (1) | 2025.06.10 |
| [빅데이터분석기사] 판다스3 - 추가/변경, 정렬, 필터링, 결측치, 값 변경 (0) | 2025.06.09 |