1. Time series type
- Timestamp (timestamp)
That is, a certain moment - Fixed period
For example, January 2018 or January 1, 2018 - Time interval
Indicated by start and end timestamps
2. Python processing module
Python standard library contains data types for date and time data, mainly using datetime, time, calendar modules.
The datetime module often uses two instance methods, datetime and timedelta
- datetime: store date and time in milliseconds
- timedelta: time difference between two datetime objects
Introducing datetime module
import datetime
Generate datetime object
start_date = datetime(2018,1,1) print(type(start_date)) end_date = datetime(2018,12,31) print(type(end_date)) delta_date = end_date - start_date print(type(delta_date))
String conversion datetime object
- datetime.strptime()
date_str = '2018-1-1' date_strptime = datetime.strptime(date_str, '%Y-%m-%d') print(type(date_strptime)) print(date_strptime)
- dateutil.parser.parse()
date_str2 = '1-1-2018' date_parse = parse(date_str2) print(type(date_parse)) print(date_parse)
- pandas.to_datetime()
date_arr = ['1/1/2018','12/31/2018'] date_todatetime = pd.to_datetime(date_arr) print(type(date_todatetime)) print(date_todatetime)
datetime object conversion string
-
str
start_date = datetime(2018,1,1) str_start_date = str(start_date) print(type(str_start_date)) print(str_start_date)
- strftime
start_date = datetime(2018,1,1) strftime_start_date = start_date.strftime('%Y-%m-%d') print(type(strftime_start_date)) print(strftime_start_date)
3. Pandas time processing
-
serial
ts = pd.Series(np.random.randn(6), index=date_list) print(type(ts)) print(ts)
-
date_range()
dates = pd.date_range('2018-1-1', periods=5, freq='W-SAT') print(dates) print(pd.Series(np.random.randn(5), index=dates))
date_index = pd.date_range('2018/1/1', '2018/2/1') print(date_index)
- mobile data
ts = pd.Series(np.random.randn(5), index=pd.date_range('20180101', periods=5, freq='W-SAT')) print(ts)
print(ts.shift(1))
print(ts.shift(-1))