时间序列

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天,这个区间就是窗口。

窗口的移动,是按照单元进行移动的,并不是按照区间。





    











  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值