[빅데이터분석기사] 판다스6 - 시계열 데이터1

2025. 6. 11. 14:15·Data/빅데이터분석기사
728x90

최근들어 작업형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'))
728x90

'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
'Data/빅데이터분석기사' 카테고리의 다른 글
  • [빅데이터분석기사] 작업형1 모의문제1+2
  • [빅데이터분석기사] 판다스7-시계열데이터2
  • [빅데이터분석기사] 판다스5 - 그룹핑, 병합, 피벗테이블
  • [빅데이터분석기사] 판다스4 - 문자열, 내장함수
DROPDEW
DROPDEW
💻 Developer | 기록하지 않으면 존재하지 않는다
  • DROPDEW
    제 2장 1막
    DROPDEW
  • 전체
    오늘
    어제
    • Dev (443)
      • App·Android (1)
      • BE (50)
        • HTTP 웹 기본 지식 (8)
        • 스프링 입문 - 코드로 배우는 스프링 부트, 웹 .. (12)
        • 스프링부트와 JPA 활용 (11)
        • 스프링부트 시큐리티 & JWT (0)
        • 실전 자바 기본, 중급 (1)
        • PHP (11)
      • FE·Client (23)
        • HTML (1)
        • React (19)
        • Unity (1)
      • Data (28)
        • AI (7)
        • Bigdata (6)
        • Database (1)
        • Python (0)
        • 빅데이터분석기사 (13)
      • Infra (1)
      • Activity (9)
        • Intern (0)
        • SK AI Dream Camp (2)
        • 구름톤 유니브 4기 (1)
        • 리모트 인턴십 6기 (3)
        • 봉사활동 (0)
        • 부스트캠프 AI Tech 8기 (3)
      • CS (8)
      • 취준 (12)
        • 자격증 (4)
        • 인적성·NCS (6)
        • 코테·필기·면접 후기 (2)
      • 코테 (270)
        • Algorithm (222)
        • SQL (35)
        • 정리 (13)
      • 인사이트 (27)
        • 금융경제뉴스 (7)
        • 금융용어·지식 (2)
        • 북마크 (7)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    브루트포스 알고리즘
    투포인터
    그래프탐색
    누적합
    다이나믹프로그래밍
    구현
    최단경로
    매개변수탐색
    백준
    시뮬레이션
    이분탐색
    수학
    그리디알고리즘
    그래프이론
    정렬
    너비우선탐색
    티스토리챌린지
    오블완
    문자열
    자료구조
  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.3
DROPDEW
[빅데이터분석기사] 판다스6 - 시계열 데이터1
상단으로

티스토리툴바