其他分享
首页 > 其他分享> > Pandas:时序数据(下)

Pandas:时序数据(下)

作者:互联网

1、时间偏移

DateOffset 类似于时间差 Timedelta ,但它使用日历中时间日期的规则,而不是直接进行时间性质的算术计算,让时间更符合实际生活。比如,有些地区使用夏令时时,每日偏移时间有可能是 23 或 24 小时,甚至 25 个小时。


对于固定在特定频率开始或结束(monthhend、MonthBegin、WeekEnd等)的偏移,以下规则适用于向前和向后滚动:

当n不为0时,如果给定日期不在锚点上,则它会捕捉到下一个(上一个)锚点,并向前或向后移动 |n|-1 步。

'''

pd.Timestamp('2014-01-02') + pd.offsets.MonthBegin(n=1)
# Timestamp('2014-02-01 00:00:00')

pd.Timestamp('2014-01-02') + pd.offsets.MonthEnd(n=1)
# Timestamp('2014-01-31 00:00:00')

pd.Timestamp('2014-01-02') - pd.offsets.MonthBegin(n=1)
Out[238]: Timestamp('2014-01-01 00:00:00')

pd.Timestamp('2014-01-02') - pd.offsets.MonthEnd(n=1)
# Timestamp('2013-12-31 00:00:00')

pd.Timestamp('2014-01-02') + pd.offsets.MonthBegin(n=4)
# Timestamp('2014-05-01 00:00:00')

pd.Timestamp('2014-01-02') - pd.offsets.MonthBegin(n=4)
# Timestamp('2013-10-01 00:00:00')

'''

如果给定的日期在锚点上,则将其| n |移动。 指向前进或后退:
'''

pd.Timestamp('2014-01-01') + pd.offsets.MonthBegin(n=1)
# Timestamp('2014-02-01 00:00:00')

pd.Timestamp('2014-01-31') + pd.offsets.MonthEnd(n=1)
# Timestamp('2014-02-28 00:00:00')

pd.Timestamp('2014-01-01') - pd.offsets.MonthBegin(n=1)
# Timestamp('2013-12-01 00:00:00')

pd.Timestamp('2014-01-31') - pd.offsets.MonthEnd(n=1)
# Timestamp('2013-12-31 00:00:00')

pd.Timestamp('2014-01-01') + pd.offsets.MonthBegin(n=4)
# Timestamp('2014-05-01 00:00:00')

pd.Timestamp('2014-01-31') - pd.offsets.MonthBegin(n=4)
# Timestamp('2013-10-01 00:00:00')

'''
对于n = 0的情况,如果在锚点上,则日期不会移动,否则它将前滚到下一个锚点。

2、时间段

3、时间操作

rng = pd.date_range('1/1/2012', periods=1000, freq='S')
ts = pd.Series(np.random.randint(0, 500, len(rng)), index=rng)
# 每5分钟进行一次聚合
ts.resample('5Min').sum()
'''
2012-01-01 00:00:00    74477
2012-01-01 00:05:00    74834
2012-01-01 00:10:00    76489
2012-01-01 00:15:00    25095
Freq: 5T, dtype: int64
'''

4、参考文献

《深入浅出Pandas》

标签:00,01,offsets,Timestamp,时序,pd,2014,数据,Pandas
来源: https://www.cnblogs.com/caolanying/p/16485732.html