본문 바로가기
공부/데이터

[pandas] 날짜 문자열을 datetime 형태로 변경

by demonic_ 2019. 10. 6.
반응형

string 형태로 사용해도 문제가 없다면 써도 상관없겠지만, 시계열쪽을 하려면 미리 가공하는 연습을 해두는게 좋을듯 하다.

 

import pandas as pd
from pandas import DataFrame
data = [['눈을감자','2019-10-01 11:12:35','2500'],
        ['진라면','2019-10-03 12:15:30', '1000'],
        ['1회용 면도기','2019-10-06 13:30:21', '300']]
# data를 DataFrame 형태로 변경
d1 = DataFrame(data, columns=['종류','구매일자','금액'])
d1
	종류	구매일자	금액
0	눈을감자	2019-10-01 11:12:35	2500
1	진라면	2019-10-03 12:15:30	1000
2	1회용 면도기	2019-10-06 13:30:21	300
# 데이터 유형 확인
d1.dtypes

종류      object
구매일자    object
금액      object
dtype: object
# 구매일자-1 이라는 컬럼으로 추가
d1['구매일자-1'] = pd.to_datetime(d1['구매일자'])
d1
	종류	구매일자	금액	구매일자-1
0	눈을감자	2019-10-01 11:12:35	2500	2019-10-01 11:12:35
1	진라면	2019-10-03 12:15:30	1000	2019-10-03 12:15:30
2	1회용 면도기	2019-10-06 13:30:21	300	2019-10-06 13:30:21
# 데이터 유형 확인
d1.dtypes

종류                object
구매일자              object
금액                object
구매일자-1    datetime64[ns]
dtype: object

---

########## 날짜유형별 가공

d1["year"] = d1["구매일자-1"].dt.year
d1["month"] = d1["구매일자-1"].dt.month
d1["day"] = d1["구매일자-1"].dt.day
d1["hour"] = d1["구매일자-1"].dt.hour
d1["minute"] = d1["구매일자-1"].dt.minute
d1["second"] = d1["구매일자-1"].dt.second
d1['dayofweek'] = d1["구매일자-1"].dt.dayofweek

# yyyy-mm 방식으로 묶을때
d1['y-m'] = d1['구매일자-1'].dt.strftime('%Y-%m')

d1

dayofweek 는 요일을 나타내는 것이며 각 수치는 다음과 같다

0 => 월

1 => 화

2 => 수

3 => 목

4 => 금

5 => 토

6 => 일

	종류	구매일자	금액	구매일자-1	year	month	day	hour	minute	second	dayofweek	y-m
0	눈을감자	2019-10-01 11:12:35	2500	2019-10-01 11:12:35	2019	10	1	11	12	35	1	2019-10
1	진라면	2019-10-03 12:15:30	1000	2019-10-03 12:15:30	2019	10	3	12	15	30	3	2019-10
2	1회용 면도기	2019-10-06 13:30:21	300	2019-10-06 13:30:21	2019	10	6	13	30	21	6	2019-10
d1.dtypes
종류                   object
구매일자                 object
금액                   object
구매일자-1       datetime64[ns]
year                  int64
month                 int64
day                   int64
hour                  int64
minute                int64
second                int64
dayofweek             int64
y-m                  object
dtype: object
반응형

댓글