In [124]:
# 날짜 처리
In [125]:
from datetime import date # 데이트타임 파일 안에 데이트를 가져와라 [만든사람마음]
In [126]:
'2022-05-08'
Out[126]:
'2022-05-08'
In [129]:
date(2022, 5, 8)
Out[129]:
datetime.date(2022, 5, 8)
In [130]:
some_day = date(2022, 5, 8) # 데이터 처리를 위해 변수에저장
In [133]:
some_day.year # 속성
Out[133]:
2022
In [134]:
some_day.month
Out[134]:
5
In [135]:
some_day.day
Out[135]:
8
In [136]:
some_day.weekday()
Out[136]:
6
In [137]:
some_day
Out[137]:
datetime.date(2022, 5, 8)
In [138]:
some_day.isoformat() # 사람용으로 표시
Out[138]:
'2022-05-08'
In [ ]:
# '2022/05/08'
In [141]:
some_day.strftime("%Y/%m/%d")
Out[141]:
'2022/05/08'
In [146]:
# '2022년 05월 08일'
In [148]:
some_day.strftime('%Y년 %m월 %d일')
Out[148]:
'2022년 05월 08일'
In [ ]:
# '05/08/22'
In [154]:
some_day.strftime("%m/%d/%y")
Out[154]:
'05/08/22'
In [155]:
some_day.strftime("%D")
Out[155]:
'05/08/22'
In [157]:
# 오늘 날짜 구하기
In [158]:
date.today()
Out[158]:
datetime.date(2022, 11, 22)
In [159]:
today = date.today()
In [163]:
today.weekday()
Out[163]:
1
In [164]:
today.isoformat()
Out[164]:
'2022-11-22'
In [165]:
from datetime import time
In [171]:
time(11, 32) # 시 분
Out[171]:
datetime.time(11, 32)
In [169]:
time(11, 32, 24) # 시 분 초
Out[169]:
datetime.time(11, 32, 24)
In [172]:
some_time = time(11, 32, 24)
In [173]:
some_time.hour
Out[173]:
11
In [174]:
some_time.minute
Out[174]:
32
In [175]:
some_time.second
Out[175]:
24
In [180]:
some_time.isoformat()
Out[180]:
'11:32:24'
In [181]:
# 11:32 AM
In [184]:
some_time.strftime("%I:%M %p")
Out[184]:
'11:32 AM'
일시 다루기 - datetime¶
In [185]:
from datetime import datetime
In [188]:
datetime(2022, 12, 24, 13, 10)
Out[188]:
datetime.datetime(2022, 12, 24, 13, 10)
In [189]:
some_datetime = datetime(2022, 12, 24, 13, 10)
In [191]:
some_datetime.isoformat()
Out[191]:
'2022-12-24T13:10:00'
In [193]:
some_datetime.weekday()
Out[193]:
5
In [197]:
some_datetime.strftime("%A")
Out[197]:
'Saturday'
In [198]:
some_datetime.strftime("%a")
Out[198]:
'Sat'
In [199]:
# 현재 시간 가져오기
In [238]:
datetime.today()
Out[238]:
datetime.datetime(2022, 11, 22, 11, 43, 30, 463697)
시각 다루기¶
UTC 현재 시각¶
In [239]:
import time
In [240]:
time.gmtime()
Out[240]:
time.struct_time(tm_year=2022, tm_mon=11, tm_mday=22, tm_hour=2, tm_min=43, tm_sec=57, tm_wday=1, tm_yday=326, tm_isdst=0)
local 시각 - 우리나라 기준 시각¶
In [241]:
time.localtime()
Out[241]:
time.struct_time(tm_year=2022, tm_mon=11, tm_mday=22, tm_hour=11, tm_min=44, tm_sec=10, tm_wday=1, tm_yday=326, tm_isdst=0)
1970년 1월 1일 자정 이후로 누적된 초를 float 단위로 반환¶
In [242]:
time.time()
Out[242]:
1669085609.3460093
In [243]:
from dateutil.parser import parse
In [244]:
date_str = "2022-06-30"
In [245]:
# 문자열 자체를, 파이썬이 처리하는 날짜 형식으로 변환하는 방법
In [246]:
date_str.weekday() # 문자열이기 때문에 처리가 되지 않는다.
--------------------------------------------------------------------------- AttributeError Traceback (most recent call last) Cell In [246], line 1 ----> 1 date_str.weekday() AttributeError: 'str' object has no attribute 'weekday'
In [251]:
someday = parse(date_str) # 문자열 데이터를 파이썬이 이해 할수있게 변환
In [252]:
someday
Out[252]:
datetime.datetime(2022, 6, 30, 0, 0)
In [253]:
someday.weekday()
Out[253]:
3
In [254]:
parse('2022/06/30')
Out[254]:
datetime.datetime(2022, 6, 30, 0, 0)
In [255]:
parse("2022-06-30 14:25")
Out[255]:
datetime.datetime(2022, 6, 30, 14, 25)
특정일로부터 원하는 날짜 계산하기¶
In [257]:
# 오늘로부터 26일 후의 날짜는?
# 오늘로 부터 47일 전의 날짜는?
# 2022-05-22 을 기준으로 100일 후의 날짜는?
In [258]:
from dateutil.relativedelta import relativedelta
In [259]:
# 오늘날짜
today = datetime.today()
In [260]:
today
Out[260]:
datetime.datetime(2022, 11, 22, 12, 4, 30, 33505)
In [261]:
today + relativedelta(days = + 26)
Out[261]:
datetime.datetime(2022, 12, 18, 12, 4, 30, 33505)
In [263]:
today + relativedelta(weeks = +7) # 오늘로부터 7 주후
Out[263]:
datetime.datetime(2023, 1, 10, 12, 4, 30, 33505)
In [267]:
today + relativedelta(days = -47) # 47일전
Out[267]:
datetime.datetime(2022, 10, 6, 12, 4, 30, 33505)
In [268]:
anyday = today + relativedelta(days = -47)
In [269]:
anyday.date().isoformat()
Out[269]:
'2022-10-06'
In [272]:
parse('2022-05-22') + relativedelta(days = +100) # 100일후
Out[272]:
datetime.datetime(2022, 8, 30, 0, 0)
In [273]:
# 2022-05-22 일을 기준으로 1년 3개월 8일 13시간 후의 날짜는?
In [275]:
parse("2022-05-22") + relativedelta(years=+1 , months=+3 , days=+8, hours=+13)
Out[275]:
datetime.datetime(2023, 8, 30, 13, 0)
In [276]:
someday = parse("2022-05-22") + relativedelta(years=+1 , months=+3 , days=+8, hours=+13)
In [278]:
someday.isoformat()
Out[278]:
'2023-08-30T13:00:00'
두 날짜의 차이를 구한다¶
In [280]:
start_day = parse('2022-01-23')
In [281]:
end_day = date.today()
In [282]:
start_day
Out[282]:
datetime.datetime(2022, 1, 23, 0, 0)
In [283]:
end_day
Out[283]:
datetime.date(2022, 11, 22)
In [288]:
relativedelta(end_day, start_day) #큰날짜 - 작은날짜
Out[288]:
relativedelta(months=+9, days=+30)
In [289]:
date_str = "2022년 05월 04일" #한글로 된 문자열 처리
In [294]:
datetime.strptime(date_str, "%Y년 %m월 %d일")
Out[294]:
datetime.datetime(2022, 5, 4, 0, 0)
'DataScience > Python' 카테고리의 다른 글
Pandas url.csv 데이터분석 6.a실습 (0) | 2022.11.29 |
---|---|
데이터프레임에 "특정단어"가 들어가있는지 여부 pd.str.contains() (0) | 2022.11.29 |
pd.read_csv(thousands= ','), 차원이 다른 데이터를 차트로, 데이터프레임에서 데이터값의 콤마제거 (0) | 2022.11.29 |
파이썬에서 함수 실행시 메모리의 상태 (0) | 2022.11.22 |
Python 라이브러리 random (0) | 2022.11.22 |