python pandas datetime,pandas处理时间数据
获取当前时间并返回年、月和日的标准格式。表格2017-01-04
常用的方法有:
Pd.date_range()生成时间段pd.bdate_range()生成时间段,与date_range()不同。可以看到下面的代码df.asfreq()以一定的时间间隔生成序列根据始末时间生成时间段。
pd.date_range(start, end, freq)生成一个时间段
freq参数由英文(M D H Min。),英文数字的组合。d表示一天,M表示一月,比如20D表示20天,5M表示5个月。
# Generate 2017 10 11-20171030 PD . date _ range( 2017 10 11 , 2017 10 30 ,freq= 5d )日期时间索引([2017-10-11 , 2017-10-16 ,)
根据起始向后生成时间段pd.date_range(日期字符串生成一个时间段
, periods=5, freq=T)periods时间段长度,整数类型
:freq时间单位。月、日、分、秒。医学博士.
导入熊猫为PD # 20171231开始于12: 50,生成时间段TM _ RNG=PD . date _ range( 2017 12 31 12:50 ,periods=5,freq= M )print(type(TM _ RNG))datetime index([ 2017-12-31 12:50:00 , 2018-01-31 12:50:00 , 2018-02-28 12
:
Pd.bdate _ range (根据给定时间点向前(向后)生成时间段,periods,freq)从结束时间点开始,以freq为单位,end生成一个以period为周期的时间序列。
PD . bdate _ range(向前periods,freq)从起始时间点开始,以freq为单位,start,生成一个周期为period的时间序列。
# 5天前打印(pd.bdate _ range (end= 20180101 ,periods=5,freq= d ))日期时间索引([2017-12-28 , 2017-12-29 , 2017-12 Dtype= datetime64 [ns],freq= d) # 5天后打印(pd.bdate _ range (start= 20180101 ,periods=5,freq= d )
向后
操作dateframe或series对象来改变对象中时间的时间间隔。Dateframe.asfreq(freq=时间间隔,method=填充方法,fill_value=填充Nan值)freq格式:M D H Min。结合数字。例如,20D表示20天,5M表示5个月。方法:有垫层和回填两种填筑方法。fill_value:将缺少的值更改为fill_value的值。
#更改时间间隔,间隔为20天tm_series.asfreq(20D ,method= pad )2017-12-31 12:50:00 02018-01-20 12:50:00 02018-02-09 12:50:00 12018-03-01 12:50:00 22018-03-21 12:50:00 222.2018-04-10 12:50:00 nan 2018-04-14 16:50:00 nan 2018-04-8 20:50:00 nan 2018-04-23 00:50:00 nan 2018-04-27 04:50:00 nan freq:100h,dtype: float64 #用100h interval更改时间间隔tm _ series.asfreq.2018-00 00:50:00缺少值2018-04-27 04:50:00缺少值频率:100H,类型:对象
改变时间间隔
数据=pd。series([ 2017年5月20日, 2017-07-12 , 20170930 , 2017/10/11 , 2017 12 11 ))PD . to _ datetime(data)0 2017-05-201 2017-07-122 2017-09-303 2017-10-114 2017-12-11d type:datetime 64[ns
可以统一日期格式
下面的tm_rng以5小时为间隔生成20个数据。我们只要2018-01-02的数据。您可以对序列和数据帧使用日期字符串操作,以选择指定时间范围内的数据。
将熊猫作为螺纹中径导入数组作为RNG=PD。date _ range( 2017-12-31 12:00:00 ,periods=20,freq=5H) tm_series=pd .系列(NP。随机的。randn(len(TM _ RNG)),index=TM _ RNG)print(type(TM _ series))print(TM _ series)class pandas。核心。系列。系列2017-12-31 12:00:00 0.6184652017-12-31 17:00:00-0.9636312017-12-31 22:00:00-0.7820.2018-01-04 06:00:00-0.6811232018-01-04 11:00:00-0.710626 freq:5H,dtype: floa64#我们只要tm _系列中是2018-01-02的数据TM _ series[ 2018-01-02 ]2018-01-02 04:00:00 0.2939412018-01-02 09:00:00-1.4373632018-01-02 14:00:00-0.5272752018-01-02 19:00:00 1.140872频率我们要2018年的数据,结果全保留TM _ series[ 2018 ]2018-01-01 03:00:00-0.3630192018-01-01 08:00:00 0.4269222018-01-01 13:00:00-1.1184252018-01-01 18:00:00 0 0 0.956300.2018-01-03 20:00:00-1.9678392018-01-04 01:00:00-0.6540292018-01-04 06:00:00-0.6811232018-01-04 11:00:00-0.710626 freq:5H,dtype: float64dft=pd .数据帧(NP。随机的。randn(len(TM _ RNG)),index=TM _ RNG)print(type(DFT))print(DFT)class pandas。核心。框架。数据框 2017-12-31 12:00:00 0.2133312017-12-31 17:00:00 1.9201312017-12-31 22:00:00-1.600.2018-01-03 20:00:00 0.8668222018-01-04 01:00:00 -0.3619022018-01-04 06:00:00 0.9027172018-01-04 11:00:00 -0.431569#对数据帧中的时间操作,只要2018-01-04日的数据print(type(DFT[ 2018-01-04 ]))print(DFT[ 2018-01-04 ])class 熊猫。核心。框架。数据框 2018-01-04 01:00:00-0.3619022018-01-04 06:00:00.9027172018-01-04 11:00:00-0
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。