1.处理时间的俩个工具:datetime 和 timedelta
From datetime import datetime,timedelta
datetiem.now()+timedelta(1) #timedelta是时间增量,datetime对象+时间增量
2.字符串和datetime对象的相互转化。
datetime转换成字符串,主要有俩个方法:
str(datetime)--最简单转换成字符串
datetime.strftime('%y-%m-%d')---将对象转换成‘%y-%m-%d' 固定格式。
3.字符串转化成时间对象。
最有效,最便捷的方法 parse 和 pd.to_datetime:
from dateutil.parse import parse
parse('2011-2-1',dayfirst=True) #parse方法能解析几乎所有表示时间的字符串,参数dayfrist是解析日再月之前。
datest=['7/6/2017','7/2/2018']
pd.to_datetime(datestr)
4.对于时间序列为index的数据集,索引,选取的方法。
df=DataFrame(np.random.randn(100,4),index=pd.date_range('2018/7/2',periods=100),columns=['a','b','c','d']) #date_range函数中,参数periods。参数freq
5.对于带有重复时间索引的数据进行聚合,可以用groupby(level=0),参数level。
6.将时间序列转化成一个具有固有频率的时间序列----调用df.resample('D'),意义:大部分有些数据的时间序列不规则,我们可以用resample整理成有规律的时间索引,时间点没有的数据,会引入缺失值。 同样还可以将时间压缩成一年,一个月,对数据进行聚合。
7.移动数据,data.shift(1,freq='M') 传入参入freq频率可以实现对时间戳进行位移,而不是上下移动数据。若没有freq,就会移动数据。
8.时区的转化,有俩个重要函数:
df. tz_localize('time_zone') ---将时间序列本地化,也就是说将时间设置为某一时区。
df.tz_convert('time_zone')---接下来就用convert将其转化 成其它的时区了。
不同时区合并,最终结果都将是UTC.
9.时间区间索引的创建:
pd.period_range('1/1/2018','7/1/2018',freq='M')---freq频率参数传入时间区间的大小,
10.时间区间的频率转换。 periods.asfreq('M','start')
11.时间戳索引和时间区间索引的相互转换:
ts.to_period('M')---将时间戳转换成频率为'M'的时间区间索引
ts.to_timestamp(how='end')---将时间区间索引,转换成时区末端的戳索引。
12.重新采样和频率转换: 降采样 和 升采样
主力函数:resample,将各种频率重新转换。
df.resample('M',how='mean',axis=0,fill_method=None,closed='right',label='right',loffset='-1s')
13.移动窗口函数
为了提升数据的准确性,将某个点的取值扩大到包含这个点的一段区间,用区间来进行判断,这个区间就是窗口。
例如:2017/1/8 有一个 数据点,把这个点取值扩大到2017/1/4--2017/1/12,区间大小为8天,这个区间就是窗口。
窗口的移动,是按照单元进行移动的,并不是按照区间。