Python 문법/Pandas_Dates and Times

[Dates and times](2) : pd.to_datetime(), pd.to_timedelta()

jasonshin 2021. 11. 23. 12:09

Typed arrays of times: NumPy's 'datetime64'

 

import pandas as pd

 

문자열을 datetype으로 변경

dates = ['2021-01-04' , '2021-01-07','2021-01-08', '2021-01-22']

pd.to_datetime(dates) # 문자열일 경우 바로 실행가능

DatetimeIndex(['2021-01-04', '2021-01-07', '2021-01-08', '2021-01-22'], dtype='datetime64[ns]', freq=None)

 

dates2 = ['2021/01/04' , '2021/01/07','2021/01/08', '2021/01/22']

pd.to_datetime(dates2)

DatetimeIndex(['2021-01-04', '2021-01-07', '2021-01-08', '2021-01-22'], dtype='datetime64[ns]', freq=None)

 

dates3 = ['2021,01,04' , '2021,01,07', '2021,01,08', '2021,01,22']

pd.to_datetime(dates3, format='%Y,%m,%d')  # 시리즈 일경우 format을 작성해주기

DatetimeIndex(['2021-01-04', '2021-01-07', '2021-01-08', '2021-01-22'], dtype='datetime64[ns]', freq=None)

 

 

Dates and times in pandas : best of both worlds

CodeMeaningTime span (relative)Time span (absolute)

DirectiveMeaningExampleNotes

%a Weekday as locale’s abbreviated name.
Sun, Mon, …, Sat (en_US);
So, Mo, …, Sa (de_DE)
(1)
%A Weekday as locale’s full name.
Sunday, Monday, …, Saturday (en_US);
Sonntag, Montag, …, Samstag (de_DE)
(1)
%w Weekday as a decimal number, where 0 is Sunday and 6 is Saturday. 0, 1, …, 6  
%d Day of the month as a zero-padded decimal number. 01, 02, …, 31 (9)
%b Month as locale’s abbreviated name.
Jan, Feb, …, Dec (en_US);
Jan, Feb, …, Dez (de_DE)
(1)
%B Month as locale’s full name.
January, February, …, December (en_US);
Januar, Februar, …, Dezember (de_DE)
(1)
%m Month as a zero-padded decimal number. 01, 02, …, 12 (9)
%y Year without century as a zero-padded decimal number. 00, 01, …, 99 (9)
%Y Year with century as a decimal number. 0001, 0002, …, 2013, 2014, …, 9998, 9999 (2)
%H Hour (24-hour clock) as a zero-padded decimal number. 00, 01, …, 23 (9)
%I Hour (12-hour clock) as a zero-padded decimal number. 01, 02, …, 12 (9)
%p Locale’s equivalent of either AM or PM.
AM, PM (en_US);
am, pm (de_DE)
(1), (3)
%M Minute as a zero-padded decimal number. 00, 01, …, 59 (9)
%S Second as a zero-padded decimal number. 00, 01, …, 59 (4), (9)
%f Microsecond as a decimal number, zero-padded on the left. 000000, 000001, …, 999999 (5)
%z UTC offset in the form ±HHMM[SS[.ffffff]] (empty string if the object is naive). (empty), +0000, -0400, +1030, +063415, -030712.345216 (6)
%Z Time zone name (empty string if the object is naive). (empty), UTC, GMT (6)
%j Day of the year as a zero-padded decimal number. 001, 002, …, 366 (9)
%U Week number of the year (Sunday as the first day of the week) as a zero padded decimal number. All days in a new year preceding the first Sunday are considered to be in week 0. 00, 01, …, 53 (7), (9)
%W Week number of the year (Monday as the first day of the week) as a decimal number. All days in a new year preceding the first Monday are considered to be in week 0. 00, 01, …, 53 (7), (9)
%c Locale’s appropriate date and time representation.
Tue Aug 16 21:30:00 1988 (en_US);
Di 16 Aug 21:30:00 1988 (de_DE)
(1)
%x Locale’s appropriate date representation.
08/16/88 (None);
08/16/1988 (en_US);
16.08.1988 (de_DE)
(1)
%X Locale’s appropriate time representation.
21:30:00 (en_US);
21:30:00 (de_DE)
(1)
%% A literal '%' character. %  

pd.to_timedelta(np.arange(10), 'D')

TimedeltaIndex(['0 days', '1 days', '2 days', '3 days', '4 days', '5 days',
                '6 days', '7 days', '8 days', '9 days'],
               dtype='timedelta64[ns]', freq=None)

 

any_date =

array('2020-11-19', dtype='datetime64[D]')

any_date + pd.to_timedelta(np.arange(10), 'D')

DatetimeIndex(['2020-11-19', '2020-11-20', '2020-11-21', '2020-11-22',
               '2020-11-23', '2020-11-24', '2020-11-25', '2020-11-26',
               '2020-11-27', '2020-11-28'],
              dtype='datetime64[ns]', freq=None)

 

일주일 단위로 생성
any_date + pd.to_timedelta(np.arange(10), 'W')

DatetimeIndex(['2020-11-19', '2020-11-26', '2020-12-03', '2020-12-10',
               '2020-12-17', '2020-12-24', '2020-12-31', '2021-01-07',
               '2021-01-14', '2021-01-21'],
              dtype='datetime64[ns]', freq=None)

 

한시간 단위로 생성
any_date + pd.to_timedelta(np.arange(10), 'h')

DatetimeIndex(['2020-11-19 00:00:00', '2020-11-19 01:00:00',
               '2020-11-19 02:00:00', '2020-11-19 03:00:00',
               '2020-11-19 04:00:00', '2020-11-19 05:00:00',
               '2020-11-19 06:00:00', '2020-11-19 07:00:00',
               '2020-11-19 08:00:00', '2020-11-19 09:00:00'],
              dtype='datetime64[ns]', freq=None)

 

Date 를 인덱스로 저장! 

df.index = pd.DatetimeIndex(df['Date'])

반응형