时间序列的类型:

时间戳:具体的时刻

固定的时间区间:例如2007年的1月或整个2010年

时间间隔:由开始时间和结束时间表示,时间区间可以被认为是间隔的特殊情况

实验时间和消耗时间:每个时间是相对于特定开始时间的时间的量度,(例如自从被放置在烤箱中每秒烘烤的饼干的直径)

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

datetime模块中的类型:

date   使用公历日历存储日历日期(年,月,日) 
time   将时间存储为小时,分钟,秒,微秒
datetime  存储日期和时间
timedelta  表示两个datetime值之间的差(如日,秒,微秒)
tzinfo  用于存储时区信息的基本类型

from datetime import datetime
now = datetime.now()
now.year  #当时年份
now.month  #当前月份
now.day  #当前天
now.time()  #当前时间
datetime.time(12, 27, 41, 303676)

 两个时间戳运算得到一个timedelta(时间差)类型

日期时间差 timedelta类型

from datetime import timedelta

start = datetime(2019,2,5)
start + timedelta(20)  #默认为天
datetime.datetime(2019, 2, 25, 0, 0)

字符串和datetime互相转换

date.strptime方法将字符串转换为时间

values = '2019-8-9'
datetime.strptime(values,'%Y-%m-%d')  #是在已知格式的前提下转换日期的好方式
datetime.datetime(2019, 8, 9, 0, 0)

datestrs = ['2019-8-7','2019-8-9']
[datetime.strptime(values,'%Y-%m-%d') for values in datestrs]
[datetime.datetime(2019, 8, 7, 0, 0), datetime.datetime(2019, 8, 9, 0, 0)]

更为通用的日期转换格式

from dateutil.parser import parse
parse(values)
datetime.datetime(2019, 8, 9, 0, 0)
parse('8,5,2018',dayfirst=True) #dayfirst参数 第一个元素是天
datetime.datetime(2018, 5, 8, 0, 0)

pd.to_datetime() 用于轴索引或DataFrame的列

pd.to_datetime(datestrs)
DatetimeIndex(['2019-08-07', '2019-08-09'], dtype='datetime64[ns]', freq=None)

更为简单的转换

datetime(2019,1,1)
datetime.datetime(2019, 1, 1, 0, 0)

时间序列的算术运算(在日期上自动对齐)

index = pd.date_range('3/3/2018',periods=20)
ts = pd.Series(np.random.randn(20),index=index)
ts
2018-03-03 0.611591
2018-03-04 0.119168
2018-03-05 0.514390
2018-03-06 1.010600
2018-03-07 0.181763
2018-03-08 -0.290964
2018-03-09 0.252927
2018-03-10 -1.645692
2018-03-11 -0.500014
2018-03-12 -1.247355"htmlcode">
ts = pd.Series(np.random.randn(1000),index = pd.date_range('1/1/2016',periods=1000))

s['2018-6'] #时间序列的索引 也可用ts.loc[]
2018-06-01 1.371843
2018-06-02 -0.356041
2018-06-03 0.111452
2018-06-04 0.325222
2018-06-05 -0.863138
2018-06-06 -0.115909
2018-06-07 0.062894
2018-06-08 0.223712

时间序列的切片

ts['2018-9-23':]  #时间序列的切片
2018-09-23 0.005519
2018-09-24 -1.374038
2018-09-25 1.769112
2018-09-26 -0.000306
Freq: D, dtype: float64

ts.truncate(before='2018-9-24')  #使用truncate方法向后切片
2018-09-24 -1.374038
2018-09-25 1.769112
2018-09-26 -0.000306
Freq: D, dtype: float64

ts.truncate(after='2016-1-4')  #向前切片
2016-01-01 -1.776334
2016-01-02 -0.488550
2016-01-03 -1.299889
2016-01-04 -1.883413
Freq: D, dtype: float64

含有重复索引的时间序列的分组处理

index = pd.DatetimeIndex(['1/1/2017','1/1/2017','1/2/2017','1/3/2017'])
dup_ta = pd.Series(np.arange(4),index=index)
dup_ta
2017-01-01 0
2017-01-01 1
2017-01-02 2
2017-01-03 3
dtype: int32

dup_ta.groupby(level=0).mean()

以上这篇Pandas时间序列基础详解(转换,索引,切片)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

标签:
Pandas,时间序列,索引,切片

免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
白云城资源网 Copyright www.dyhadc.com

《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线

暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。

艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。

《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。