Python数据分析之时间序列
发布时间:2020-07-10 06:56:27
来源:51CTO
阅读:808
作者:up4ever
1. 时间序列类型
时间戳(timestramp)
即特定的时刻
固定时期(period)
如2018年1月或2018年1月1日
时间间隔(interval)
由起始和结束时间戳表示
2. Python处理模块
Python标准库包含用于日期和时间数据的数据类型,主要用到datetime、time、calendar模块。
datetime模块常使用datetime和timedelta两种实例方法
datetime:以毫秒形式存储日期和时间
timedelta:表示两个datetime对象的时间差
引入datetime模块
import datetime
生成datetime对象
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))
字符串转化datetime对象
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对象转化字符串
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 时间处理
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)
移动数据
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))