PYTHON#6

codataffee·2024년 5월 3일
0

PYTHON

목록 보기
6/40
post-thumbnail

#개요

  • 시계열 데이터 #1

📌 DATETIME

  • 특정 시점의 날짜와 시간!

# 데이터 생성
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 = pd.read_csv('date.csv')
df

📌 Date1

  • OBJECT TYPE → DATETIME TYPE

# Date1 원래 칼럼 시리즈 조회
df = pd.read_csv("date.csv")
print(df['Date1'])
# Date1 타입 변환 후
df['Date1'] = pd.to_datetime(df['Date1'])
print(df['Date1'])

📌 Date2

  • OBJECT TYPE → DATETIME TYPE
  • 오류! 기존 칼럼의 날짜 형식이 다른 문제

# Date2 (year 4자리: %Y) 오류!
df = pd.read_csv("date.csv")
print(df['Date2'])
df['Date2'] = pd.to_datetime(df['Date2'])
print(df['Date2'])
  • .to_datetime(df['칼럼'], format = "%Y:%m:%d")
  • format 메서드를 활용해 기존 칼럼 날짜 형식과 동일하게 작성.

# Date2 (year 4자리: %Y)
df = pd.read_csv("date.csv")
print(df['Date2'])
df['Date2'] = pd.to_datetime(df['Date2'], format="%Y:%m:%d")
print(df['Date2'])

📌 Date3

  • OBJECT TYPE → DATETIME TYPE
  • 오류! 날짜형식으로 변환은 됐으나, 년도와 날짜에 대한 대입이 잘못됨

# Date3 (year 2자리: %y) 오류!
df = pd.read_csv("date.csv")
print(df['Date3'])
df['Date3'] = pd.to_datetime(df['Date3'])
print(df['Date3'])
  • 마찬가지로 .to_datetime(df['칼럼'], format = "%y/%m/%d")
    format 메서드를 통해 기존 칼럼의 년,월,일 형식과 맞게 작성

# Date3 (year 2자리: %y)
df = pd.read_csv("date.csv")
print(df['Date3'])
df['Date3'] = pd.to_datetime(df['Date3'], format="%y/%m/%d")
print(df['Date3'])

📌 Date4

  • OBJECT TYPE → DATETIME TYPE
  • 년, 월, 일 형식을 format 해주지 않아도 %Y %m %d 에 맞도록
    년도와 월, 일이 들어가 있기 때문에 정상적으로 변환됨

# Date4
df = pd.read_csv("date.csv")
print(df['Date4'])
df['Date4'] = pd.to_datetime(df['Date4'])
print(df['Date4'])

📌 Date5

  • OBJECT TYPE → DATETIME TYPE
  • %M 형식(영문)으로 작성되어 있지만 년, 월, 일이 들어있기 때문에
    정상적으로 변환됨

# Date5
df = pd.read_csv("date.csv")
print(df['Date5'])
df['Date5'] = pd.to_datetime(df['Date5'])
print(df['Date5'])

📌 Date6

  • OBJECT TYPE → DATETIME TYPE
  • 기존 칼럼의 년, 월, 일 구분이 한글로 작성되어 있기 때문에 오류 발생

# Date6 오류!
df = pd.read_csv("date.csv")
print(df['Date6'])
df['Date6'] = pd.to_datetime(df['Date6'])
print(df['Date6'])
  • format 메서드로 "%Y%m%d" 형식을 맞춰 해결

# Date6
df = pd.read_csv("date.csv")
print(df['Date6'])
df['Date6'] = pd.to_datetime(df['Date6'], format="%Y년%m월%d일")
print(df['Date6'])

📌 DateTime1

  • OBJECT TYPE → DATETIME TYPE
  • 년도 형식이 %y 로 되어 있어 오류 발생

# DateTime1 오류!
df = pd.read_csv("date.csv")
print(df['DateTime1'])
df['DateTime1'] = pd.to_datetime(df['DateTime1'])
print(df['DateTime1'])
  • format 메서드로 "%Y%m%d" 형식을 맞춰 해결

# DateTime1
df = pd.read_csv("date.csv")
print(df['DateTime1'])
df['DateTime1'] = pd.to_datetime(df['DateTime1'], format='%y-%m-%d %H:%M:%S')
print(df['DateTime1'])

📌 DateTime2

  • OBJECT TYPE → DATETIME TYPE
  • 기존 칼럼의 시간 형태(각 칼럼 간 "-" 가 달라 오류 발생)

# DateTime2 오류!
df = pd.read_csv("date.csv")
print(df['DateTime2'])
df['DateTime2'] = pd.to_datetime(df['DateTime2'])
print(df['DateTime2'])
  • format 메서드로 "format='%Y-%m-%d %H-%M-%S'" 형식을 맞춰 해결

# DateTime2
df = pd.read_csv("date.csv")
print(df['DateTime2'])
df['DateTime2'] = pd.to_datetime(df['DateTime2'], format='%Y-%m-%d %H-%M-%S')
print(df['DateTime2'])

📌 DateTime3

  • OBJECT TYPE → DATETIME TYPE
  • 구분자가 / 로 되어있으나 년, 월, 일 형식이 맞기 때문에 정상적으로 실행

# DateTime3
df = pd.read_csv("date.csv")
print(df['DateTime3'])
df['DateTime3'] = pd.to_datetime(df['DateTime3'])
print(df['DateTime3'])

📌 DateTime4

  • OBJECT TYPE → DATETIME TYPE
  • month가 영어로 되어있으나 년, 월, 일 형식이 맞기 때문에 정상적으로 실행

# DateTime4
df = pd.read_csv("date.csv")
print(df['DateTime4'])
df['DateTime4'] = pd.to_datetime(df['DateTime4'])
print(df['DateTime4'])

📌 자료형 확인

# 자료형 확인
df.info()

📌 년, 월, 일, 시간, 분, 초, 추출

  • df['칼럼명'].dt.year : 년도만 출력
    이외에도 .dt.month, day, hour, minute, second 사용 가능


# 년, 월, 일, 시간, 분, 초 추출
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)

  • datofweek 메서드를 활용하면 월요일을 0 ~ 일요일을 6 으로 하는
    숫자가 부여된다.

#요일 dayofweek 0:월, 1:화, 2:수, 3:목, 4:금, 5:토, 6:일
df["DateTime4"].dt.dayofweek


#요일 dayofweek 0:월, 1:화, 2:수, 3:목, 4:금, 5:토, 6:일
df["DateTime4"].dt.dayofweek

- 참고

# [참고] 기간 to_period()
print(df['DateTime4'].dt.to_period('Y'))
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'))

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

0개의 댓글

관련 채용 정보