date_range
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了date_range相关的知识,希望对你有一定的参考价值。
参考技术A 这两天重新做 50道练习带你玩转Pandas 然后发现自己好多都不会了,对一些进阶做些小随笔记录下。
(参照 https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.date_range.html )
data_range :用来操作实际日期的很好的函数,主要用于生成一系列特定的时间,我们可以自己设定开始、结束、周期数、时间间隔、时区等等。
函数参数 :pandas.date_range(start=None, end=None, periods=None, freq=’D’, tz=None, normalize=False, name=None, closed=None, **kwargs)
参数说明 :
例:
创建Series s,将2015所有工作日作为随机值的索引:
使用 date_range 重新索引时间戳数据
【中文标题】使用 date_range 重新索引时间戳数据【英文标题】:Reindex time-stamped data with date_range 【发布时间】:2012-08-31 03:16:19 【问题描述】:我有一个pandas.Series
的时间戳数据 - 基本上是一系列事件:
0 2012-09-05 19:28:52
1 2012-09-05 19:28:52
2 2012-09-05 19:44:37
3 2012-09-05 19:44:37
4 2012-09-05 20:04:53
5 2012-09-05 20:04:53
6 2012-09-05 20:12:59
7 2012-09-05 20:13:15
8 2012-09-05 20:13:15
9 2012-09-05 20:13:15
我想在特定的 pandas.date_range
(例如 15 分钟间隔;pandas.date_range(start, end, freq='15T')
)上创建一个 pandas.TimeSeries
,它保存每个时期的事件计数。这如何实现?
谢谢, 彼得
【问题讨论】:
【参考方案1】:如果您将事件的时间戳用作系列的索引而不是数据,那么 resample 可以做到这一点。在下面的示例中,series 的索引是时间戳,数据是 event_id,基本上是您的系列的索引。
In [47]: s
Out[47]:
event_id
timestamp
2012-09-05 19:28:52 0
2012-09-05 19:28:52 1
2012-09-05 19:44:37 2
2012-09-05 19:44:37 3
2012-09-05 20:04:53 4
2012-09-05 20:04:53 5
2012-09-05 20:12:59 6
2012-09-05 20:13:15 7
2012-09-05 20:13:15 8
2012-09-05 20:13:15 9
resample(此方法也可用于 DataFrame)将给出一个新系列,在这种情况下为 15 分钟周期,桶的结束时间(周期)用于引用它(您可以使用 label arg 来控制它)。
In [48]: s.resample('15Min', how=len)
Out[48]:
event_id
timestamp
2012-09-05 19:30:00 2
2012-09-05 19:45:00 2
2012-09-05 20:00:00 0
2012-09-05 20:15:00 6
【讨论】:
一定要注意closed
和label
选项到resample
!以上是关于date_range的主要内容,如果未能解决你的问题,请参考以下文章