时间序列的基础频率
- D:Day 每日历日
- B:BusinessDay 每工作日
- H:Hour 每小时
- T/min:Minute 每分
- S:Second 每秒
- M:MonthEnd 每月最后一个日历日
- BM:BusinessMonthEnd 每月最后一个工作日
- MS:MonthBegin 每月第一个日历日
- BMS:BusinessMonthBegin 每月第一个工作日
- W-MON、W-TUE:Week 从指定的星期几(MON、TUE、WED、THU、FRI、SAT、SUN)开始算起,每周
- WOM-1MON、WOM-2MOM:WeekOfMonth 每月第几个星期几,例如:WOM-3FRI 每月第三个星期五
- Q-JAN、Q-FEB:QuarterEnd对于指定月份(JAN、FEB、MAR、APR、MAY、JUN、JUL、AUG、SEP、OCT、NOV、DEC)结束的年度,每季度最后一月的最后一个日历日
- BQ-JAN、BQ-FEB:BusinessQuarterEnd对于指定月份结束的年度,每季度最后一月的最后一个工作日
import pandas as pd from pandas import Series from pandas.tseries.offsets import Hour,Minute # 频率和日期偏移量 hour = Hour() print(hour) # <Hour> four_hours = Hour(4) print(four_hours) # <4 * Hours> index = pd.date_range('1/1/2021','1/2/2021',freq='4H') print(index) # 1月1日到1月2日,时间间隔4小时 ''' DatetimeIndex(['2021-01-01 00:00:00', '2021-01-01 04:00:00', '2021-01-01 08:00:00', '2021-01-01 12:00:00', '2021-01-01 16:00:00', '2021-01-01 20:00:00', '2021-01-02 00:00:00'], dtype='datetime64[ns]', freq='4H') ''' print(Hour(3)+Minute(30)) # 3小时30分钟 <210 * Minutes> index = pd.date_range('1/1/2021','1/2/2021',freq='3H30MIN') print(index) ''' DatetimeIndex(['2021-01-01 00:00:00', '2021-01-01 03:30:00', '2021-01-01 07:00:00', '2021-01-01 10:30:00', '2021-01-01 14:00:00', '2021-01-01 17:30:00', '2021-01-01 21:00:00'], dtype='datetime64[ns]', freq='210T') ''' ts = Series([1,2,3,4],index=pd.date_range("3/7/2021",periods=4,freq='M')) print(ts) # 3月开始4个月,M指MonthEnd每月最后一个日历日 ''' 2021-03-31 1 2021-04-30 2 2021-05-31 3 2021-06-30 4 Freq: M, dtype: int64 ''' print(ts.shift(2)) ''' 2021-03-31 NaN 2021-04-30 NaN 2021-05-31 1.0 2021-06-30 2.0 Freq: M, dtype: float64 ''' print(ts.shift(-2)) ''' 2021-03-31 3.0 2021-04-30 4.0 2021-05-31 NaN 2021-06-30 NaN Freq: M, dtype: float64 ''' print(ts.shift(2,freq='M')) # 2M=2个月 ''' 2021-05-31 1 2021-06-30 2 2021-07-31 3 2021-08-31 4 Freq: M, dtype: int64 ''' print(ts.shift(3,freq='D')) # 3D=3天 ''' 2021-04-03 1 2021-05-03 2 2021-06-03 3 2021-07-03 4 dtype: int64 ''' print(ts.shift(2,freq='10T')) # 2*10T=20分钟 ''' 2021-03-31 00:20:00 1 2021-04-30 00:20:00 2 2021-05-31 00:20:00 3 2021-06-30 00:20:00 4 dtype: int64 '''
通过偏移量对日期进行位移
# pandas的日期偏移量还可以用在datetime或Timestamp对象上 from pandas.tseries.offsets import Day,MonthEnd import datetime now = datetime.datetime(2021,12,15) print(now + 3*Day()) # 2021-12-18 00:00:00 print(now + MonthEnd()) # 2021-12-31 00:00:00 print(now + MonthEnd(3)) # 2022-02-28 00:00:00 # 通过锚点偏移量rollforward和rollback可以将日期向前向后滚动 offset = MonthEnd() print(offset.rollforward(now)) # 2021-12-31 00:00:00 print(offset.rollback(now)) # 2021-11-30 00:00:00
本文来自博客园,作者:OTAKU_nicole,转载请注明原文链接:https://www.cnblogs.com/nicole-zhang/p/15407306.html