python时间序列笔记1

python标准库的关于时间的库主要有3个

datetime,time,calendar

python时间序列有三类:

1、时间戳 timestamp ,特定的时间

2、固定时期 period 就是一个时间段,如:2001年1月或 2011年全年

3、时间间隔 interval ,由起始时间戳和结束时间戳表示,时期可以看看做是时间间隔的特例。

日期和时间数据类型及工具:

datetime类主要有如下类:

date:以公历的形式存储日历日期(年、月、日)

datetime:存储时间和日期

time:将时间存储为时、分、秒、毫秒

timedelta:表示两个datetime值之间的时间差值(日、秒、毫秒)

In [34]: from datetime import datetime

In [35]: now = datetime.now()
Out[35]: datetime.datetime(2020, 3, 15, 12, 27, 34, 127223)

datetime的对象有year,month,day,hour,minute,second等属性,用户获取datetime对象的年,月,日,时,分,秒

datetime库中的timedelta对象为两个datetime对象之间的时间差。

datetime库中的datetime类的now()方法,返回当前时间的datetime对象,

delta = datetime.datetime(2011,11,20)-datetime.datetime(2011,11,1)

timedelta对象的计算:

import datetime

In [19]: start = datetime.datetime(2011,1,7)

In [20]: start+datetime.timedelta(12)
Out[20]: datetime.datetime(2011, 1, 19, 0, 0)

In [21]: start + 2*datetime.timedelta(10)
Out[21]: datetime.datetime(2011, 1, 27, 0, 0)

字符串和datetime对象之间的互相转换:

In [23]: stamp = datetime.datetime(2011,1,3)

In [24]: str(stamp) #直接将datetime对象转换为
Out[24]: '2011-01-03 00:00:00'

In [25]: stamp.strftime('%Y-%m-%d')#按照特定格式转换
Out[25]: '2011-01-03'

datetime对象的strptime()将指定格式的str对象转化为datetime对象

In [26]: s = stamp.strftime('%Y-%m-%d')

In [27]: datetime.datetime.strptime(s,'%Y-%m-%d')
Out[27]: datetime.datetime(2011, 1, 3, 0, 0)

datetime格式定义如下:

%Y4位数的年
%y2位数的年
%m2位数的月【01-12】
%d2位数的日【01-31】
%H时,24小时制【1-23】
%I时,12小时制【1-12】
%M2位数的分【00,59】
%S秒【00,59】

 

dateutil库是一个将常见字符串转换为datetime对象的第三方库:

In [33]: from dateutil.parser import parse

In [34]: parse('2011-01-11')
Out[34]: datetime.datetime(2011, 1, 11, 0, 0)

In [35]: parse('20110105')
Out[35]: datetime.datetime(2011, 1, 5, 0, 0)

默认情况下时年/日/月格式,若存在年/月/日格式,可在parse方法的第二个参数使用dayfirst=True指定日在月前。

In [37]:  parse('2011/01/02')
Out[37]: datetime.datetime(2011, 1, 2, 0, 0)

In [38]:  parse('2011/01/02',dayfirst = True)
Out[38]: datetime.datetime(2011, 2, 1, 0, 0)

pandas有个一to_datetime()方法,可以将其他对象转化为DatetimeIndex对象

import pandas as pd

In [40]: pd.to_datetime(['2011/01/13','2011/01/01'])
Out[40]: DatetimeIndex(['2011-01-13', '2011-01-01'], dtype='datetime64[ns]', freq=None)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值