Data Science | 时期时间傻傻分不清楚

简介: Data Science | 时期时间傻傻分不清楚

Pandas时期 - Period

pd.Period()创建时期

生成一个以2017-01开始,月为频率的时间构造器:

p = pd.Period('2017', freq = 'M')
print(p, type(p))
>>>
2017-01 <class 'pandas._period.Period'>

我们可以通过加减整数,将周期整体移动:

p = pd.Period('2017', freq = 'M')
print(p, type(p))
print(p + 1)
print(p - 2)
>>>
2017-02
2016-11
pd.period_range()创建时期范围

创建指定时期范围:

prng = pd.period_range('1/1/2011', '1/1/2012', freq='M')
print(prng,type(prng))
>>>
PeriodIndex(['2011-01', '2011-02', '2011-03', '2011-04', '2011-05', '2011-06',
             '2011-07', '2011-08', '2011-09', '2011-10', '2011-11', '2011-12',
             '2012-01'],
            dtype='int64', freq='M') <class 'pandas.tseries.period.PeriodIndex'>

结合上面的时期序列,创建时间序列:

ts = pd.Series(np.random.rand(len(prng)), index = prng)
print(ts,type(ts))
print(ts.index)
>>>
2011-01    0.342571
2011-02    0.826151
2011-03    0.370505
2011-04    0.137151
2011-05    0.679976
2011-06    0.265928
2011-07    0.416502
2011-08    0.874078
2011-09    0.112801
2011-10    0.112504
2011-11    0.448408
2011-12    0.851046
2012-01    0.370605
Freq: M, dtype: float64 <class 'pandas.core.series.Series'>
PeriodIndex(['2011-01', '2011-02', '2011-03', '2011-04', '2011-05', '2011-06',
             '2011-07', '2011-08', '2011-09', '2011-10', '2011-11', '2011-12',
             '2012-01'],
            dtype='int64', freq='M')
pd.period - asfreq:频率转换

通过.asfreq(freq, method=None, how=None)方法可以将之前生成的频率转换成别的频率

p = pd.Period('2017','A-DEC')
print(p)
print(p.asfreq('M', how = 'start'))  # 也可写 how = 's'
print(p.asfreq('D', how = 'end'))  # 也可写 how = 'e'
>>>
2017
2017-01
2017-12-31

asfreq也可以转换TIMESeries的index:

prng = pd.period_range('2017','2018',freq = 'M')
ts1 = pd.Series(np.random.rand(len(prng)), index = prng)
ts2 = pd.Series(np.random.rand(len(prng)), index = prng.asfreq('D', how = 'start'))
print(ts1.head(),len(ts1))
print(ts2.head(),len(ts2))

时间戳与时期之间的转换

使用pd.to_period()、pd.to_timestamp()可以实现时间戳与时期之间的转换。

rng = pd.date_range('2017/1/1', periods = 10, freq = 'M')
prng = pd.period_range('2017','2018', freq = 'M')
ts1 = pd.Series(np.random.rand(len(rng)), index = rng)
print(ts1.head())
print(ts1.to_period().head())
# 每月最后一日,转化为每月
ts2 = pd.Series(np.random.rand(len(prng)), index = prng)
print(ts2.head())
print(ts2.to_timestamp().head())
# 每月,转化为每月第一天
>>>
2017-01-31    0.125288
2017-02-28    0.497174
2017-03-31    0.573114
2017-04-30    0.665665
2017-05-31    0.263561
Freq: M, dtype: float64
2017-01    0.125288
2017-02    0.497174
2017-03    0.573114
2017-04    0.665665
2017-05    0.263561
Freq: M, dtype: float64
2017-01    0.748661
2017-02    0.095891
2017-03    0.280341
2017-04    0.569813
2017-05    0.067677
Freq: M, dtype: float64
2017-01-01    0.748661
2017-02-01    0.095891
2017-03-01    0.280341
2017-04-01    0.569813
2017-05-01    0.067677
Freq: MS, dtype: float64

巩固练习

  • 1:请输出以下时间序列,使用pd.period_range()
相关文章
|
7月前
|
存储 Web App开发 运维
发布、部署,傻傻分不清楚?从概念到实际场景,再到工具应用,一篇文章让你彻底搞清楚
部署和发布是软件工程中经常互换使用的两个术语,甚至感觉是等价的。然而,它们是不同的! • 部署是将软件从一个受控环境转移到另一个受控环境,它的目的是将软件从开发状态转化为生产状态,使得软件可以为用户提供服务。 • 发布是将软件推向用户的过程,应用程序需要多次更新、安全补丁和代码更改,跨平台和环境部署需要对版本进行适当的管理,有一定的计划性和管控因素。
1610 1
|
7月前
|
数据可视化 Go vr&ar
JCR一区7.4分|教科书般网药四件套+实验验证,廉颇老矣尚能饭否
该文章是一篇发表在《Journal of Translational Medicine》上的研究,探讨了白藜芦醇治疗糖尿病肾病(DKD)的机制。通过网络药理学、分子对接和实验验证,研究发现白藜芦醇可能通过作用于PPARA、SHBG、AKR1B1、PPARG、IGF1R、MMP9、AKT1和INSR等靶点影响DKD。分子对接和细胞实验进一步证实了这些发现,为白藜芦醇在DKD治疗中的应用提供了理论支持。
79 0
95后Nature狂魔曹原达成7连杀,一周发两篇Nature,每次都是枯燥的感觉(一)
「石墨烯驾驭者」曹原又发Nature了!7天内两篇,截至目前,他已经发了7篇Nature论文。对于这个科研「走花路」的年轻学者除了佩服,还有祝福,祝他:仰望星空,一路坦途!
176 0
95后Nature狂魔曹原达成7连杀,一周发两篇Nature,每次都是枯燥的感觉(一)
|
量子技术
95后Nature狂魔曹原达成7连杀,一周发两篇Nature,每次都是枯燥的感觉(二)
「石墨烯驾驭者」曹原又发Nature了!7天内两篇,截至目前,他已经发了7篇Nature论文。对于这个科研「走花路」的年轻学者除了佩服,还有祝福,祝他:仰望星空,一路坦途!
125 0
95后Nature狂魔曹原达成7连杀,一周发两篇Nature,每次都是枯燥的感觉(二)
Science | COVID-19大流行期间,研究重点应放在高质量研究
Science | COVID-19大流行期间,研究重点应放在高质量研究
121 0
Science | COVID-19大流行期间,研究重点应放在高质量研究
|
移动开发 安全 关系型数据库
黑客马拉松经验谈:一个周末你能做出有趣、有用的服务吗?
“黑客马拉松”(Hackathon),是黑客 + 马拉松(Hack + Marathon)的组合字,大致上就是几个人聚在一起以马拉松的方式进行一段长时间的 Hack 活动,像是台湾 Yahoo! 办过 Open Hack Day、台湾微软办过 HTML5 或 IE 浏览器的黑客松活动,这类型的活动,实际进行的时间从半天、一天到两天一夜的长度都有。
551 0
黑客马拉松经验谈:一个周末你能做出有趣、有用的服务吗?
|
机器学习/深度学习
ML与Information:机器学习与Information信息论之间那些七七八八、乱七八糟、剪不断理还乱的关系攻略
ML与Information:机器学习与Information信息论之间那些七七八八、乱七八糟、剪不断理还乱的关系攻略
ML与Information:机器学习与Information信息论之间那些七七八八、乱七八糟、剪不断理还乱的关系攻略
|
存储 监控 Oracle
外行假装内行,我也来谈谈SAP BAPI和BADI
外行假装内行,我也来谈谈SAP BAPI和BADI
SAP freelancer夫妻并不难!你也可以
SAP freelancer夫妻并不难!你也可以
|
程序员 Android开发
从996.icu来谈一谈如何高效支配时间
引言 最近Github出现一个非常火爆的项目叫996.icu,轰动海内外,成为近日各大媒体的头条新闻,截止到今天已有12万人的Star(点赞)。Github是一个全球最大的技术分享平台,但这个996.icu跟技术本身无关,“工作996,生病icu”,这是12万程序员对某些公司的强制996工作模式的一种抗议。

热门文章

最新文章