Python Pandas – 返回时间段对象,以分钟为频率的时间戳

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索引,我们可以轻松地处理时间序列数据。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程