python pandas时序处理相关功能详解
创建时间序列
函数pd.date_range()
根据指定的范围,生成时间序列DatetimeIndex,每隔元素的类型为Timestamp。该函数应用较多。
ts=pd.date_range('2017-09-01',periods=10,freq='d',normalize=False) ts
输出为:
DatetimeIndex(['2017-09-01','2017-09-02','2017-09-03','2017-09-04', '2017-09-05','2017-09-06','2017-09-07','2017-09-08', '2017-09-09','2017-09-10'], dtype='datetime64[ns]',freq='D'
主要的入参解析:
- start:开始时刻,可以是字符串或者datetime类型的值。默认None。
- end:结束时刻,可以是字符串或者datetime类型的值,如果指定了长度,即periods,则可不设置。默认None。
- periods:时序的长度,整型类型。如果有end,可不设置。默认None。
- freq:时序生成的频率,即每隔多少时刻生成一个时序点。字符串类型或者DateOffset类型。默认'D',即天粒度,见上述代码输出。
- tz:时区,字符串类型。默认None。
- normalize:bool类型,没用过,不知道干啥的。
- name:设置时序的名称,字符串类型,默认None。
- closed:是否包含两边的值。默认None,即两边都保留。
其中,freq的取值可以为如下的符号表示间隔,可以结合符号和数字,如'3d',表示每隔三天记录一个时间点。大小写都可以。
Bbusinessdayfrequency Ccustombusinessdayfrequency(experimental) Dcalendardayfrequency Wweeklyfrequency Mmonthendfrequency SMsemi-monthendfrequency(15thandendofmonth) BMbusinessmonthendfrequency CBMcustombusinessmonthendfrequency MSmonthstartfrequency SMSsemi-monthstartfrequency(1stand15th) BMSbusinessmonthstartfrequency CBMScustombusinessmonthstartfrequency Qquarterendfrequency BQbusinessquarterendfrequency QSquarterstartfrequency BQSbusinessquarterstartfrequency Ayearendfrequency BAbusinessyearendfrequency ASyearstartfrequency BASbusinessyearstartfrequency BHbusinesshourfrequency Hhourlyfrequency T,minminutelyfrequency Ssecondlyfrequency L,msmilliseconds U,usmicroseconds Nnanoseconds
字符串转换为时间戳
pd.to_datetime()函数可以将表示时间的字符串转换位TimeStamp。
pd.to_datetime('2017-09-01')
输出为:
Timestamp('2017-09-0100:00:00')
常用的参数:
format:用来设置字符串的格式,默认如上所示。
时间戳的加减
有时候需要将时间进行增减,可以使用类型:DateOffset。
pd.to_datetime('2017-09-01')+pd.DateOffset(days=10)
输出为:
Timestamp('2017-09-1100:00:00')
DateOffset常用的参数:
- months,设置月。
- days,设置天。
- years,设置年。
- hours,设置小时。
- minutes,设置分钟。
- seconds,设置秒。
以上可以同时设置,组合使用。
pd.to_datetime('2017-09-01')+pd.DateOffset(seconds=10,days=10)
输出为:
Timestamp('2017-09-1100:00:10')
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。