Python Pandas – 返回时间段对象,以分钟为频率的时间戳
Python中的Pandas库可以处理时间序列数据,包括日期和时间。在Pandas中,时间序列数据是以时间戳为索引的Series对象或DataFrame对象。Pandas提供了许多方法来处理时间序列数据,包括生成时间序列数据对象的方法。
在Pandas中,我们可以使用 date_range() 函数来生成时间序列数据。我们可以使用该函数生成时间范围序列,以及指定时间间隔和频率。对于每个频率,我们可以指定其各种不同的参数,例如天,小时,分钟,秒和毫秒等。在该文章中,我们将讨论如何返回分钟为频率的时间戳,并生成时间段对象。
返回分钟为频率的时间戳
我们可以使用 date_range() 函数来生成一个分钟为频率的时间戳序列,并设置开始时间和结束时间。下面的代码显示如何生成一个从2021年1月1日开始,持续3天(4320分钟),每分钟的时间戳:
import pandas as pd
start = '2021-01-01'
end = '2021-01-03 00:00:00'
timestamps = pd.date_range(start, end, freq='T')
print(timestamps)
输出结果如下:
DatetimeIndex(['2021-01-01 00:00:00', '2021-01-01 00:01:00',
'2021-01-01 00:02:00', '2021-01-01 00:03:00',
'2021-01-01 00:04:00', '2021-01-01 00:05:00',
'2021-01-01 00:06:00', '2021-01-01 00:07:00',
'2021-01-01 00:08:00', '2021-01-01 00:09:00',
...
'2021-01-02 23:51:00', '2021-01-02 23:52:00',
'2021-01-02 23:53:00', '2021-01-02 23:54:00',
'2021-01-02 23:55:00', '2021-01-02 23:56:00',
'2021-01-02 23:57:00', '2021-01-02 23:58:00',
'2021-01-02 23:59:00', '2021-01-03 00:00:00'],
dtype='datetime64[ns]', length=4321, freq='T')
我们可以看到,输出结果返回了从2021年1月1日00:00:00到2021年1月3日00:00:00之间的所有分钟级别的时间戳对象。
生成时间段对象
Pandas的时间段对象表示了一段时间区间,可以看作是时间戳的一种扩展形式。我们可以使用Pandas的 period_range() 函数来生成时间段对象。
下面的代码显示如何生成一个从2021年1月1日开始,持续3天(72个时间段),每分钟的时间段对象:
import pandas as pd
start = '2021-01-01'
end = '2021-01-03'
periods = pd.period_range(start, end, freq='T')
print(periods)
输出结果如下:
PeriodIndex(['2021-01-01 00:00', '2021-01-01 00:01', '2021-01-01 00:02',
'2021-01-01 00:03', '2021-01-01 00:04', '2021-01-01 00:05',
'2021-01-01 00:06', '2021-01-01 00:07', '2021-01-01 00:08',
'2021-01-01 00:09',
...
'2021-01-02 23:51', '2021-01-02 23:52', '2021-01-02 23:53', '2021-01-02 23:54', '2021-01-02 23:55',
'2021-01-02 23:56', '2021-01-02 23:57', '2021-01-02 23:58',
'2021-01-02 23:59', '2021-01-03 00:00'],
dtype='period[T]', length=4321, freq='T')
注意,输出结果中的时间段对象以T为频率表示分钟。每个时间段对象表示了1分钟的时间间隔。
时间段对象作为DataFrame索引
我们可以将时间段对象作为DataFrame对象的索引来处理时间序列数据。下面的代码演示如何将时间段对象作为DataFrame对象的索引,并将每个时间段对象映射到数据中的每个时间点:
import pandas as pd
import numpy as np
start = '2021-01-01'
end = '2021-01-03'
periods = pd.period_range(start, end, freq='T')
data = pd.DataFrame(np.random.randn(len(periods), 1), index=periods, columns=['Value'])
print(data.head())
输出结果如下:
Value
2021-01-01 00:00 -1.162829e+00
2021-01-01 00:01 1.854056e+00
2021-01-01 00:02 -6.841286e-04
2021-01-01 00:03 7.232952e-01
2021-01-01 00:04 -4.419320e-01
在上面的代码中,我们创建了一个数据DataFrame对象,并将时间段对象作为索引。我们使用了Numpy的随机数生成器来生成数据,并将其放入了DataFrame对象中。这样,我们就可以利用时间段对象来处理时间序列数据了。
结论
Python中的Pandas库提供了许多强大的方法来处理时间序列数据,包括日期和时间。我们可以使用 date_range() 和 period_range() 函数来生成各种时间范围序列和时间段对象。在使用这些方法时,我们需要指定时间范围的开始时间和结束时间,以及时间间隔和频率。通过使用时间段对象作为DataFrame索引,我们可以轻松地处理时间序列数据。
极客笔记