Python Pandas – 从DateTimeIndex中提取指定时间序列频率的分钟

Python Pandas – 从DateTimeIndex中提取指定时间序列频率的分钟

在使用Python Pandas处理时间序列数据时,经常需要从DateTimeIndex中提取指定时间序列频率的分钟。下面我们将讨论如何使用Python Pandas实现这个功能。

创建时间序列

首先我们需要创建一个时间序列,我们可以使用pd.date_range()函数来创建一个DatetimeIndex对象,例如:

import pandas as pd

# 创建一个时间序列,频率为'10min'
times = pd.date_range('2022-12-01 00:00', '2022-12-02 00:00', freq='10min')
print(times)

输出:

DatetimeIndex(['2022-12-01 00:00:00', '2022-12-01 00:10:00',
               '2022-12-01 00:20:00', '2022-12-01 00:30:00',
               '2022-12-01 00:40:00', '2022-12-01 00:50:00',
               '2022-12-01 01:00:00', '2022-12-01 01:10:00',
               '2022-12-01 01:20:00', '2022-12-01 01:30:00',
               '2022-12-01 01:40:00', '2022-12-01 01:50:00',
               '2022-12-01 02:00:00', '2022-12-01 02:10:00',
               '2022-12-01 02:20:00', '2022-12-01 02:30:00',
               '2022-12-01 02:40:00', '2022-12-01 02:50:00',
               '2022-12-01 03:00:00', '2022-12-01 03:10:00',
               '2022-12-01 03:20:00', '2022-12-01 03:30:00',
               '2022-12-01 03:40:00', '2022-12-01 03:50:00',
               '2022-12-01 04:00:00', '2022-12-01 04:10:00',
               '2022-12-01 04:20:00', '2022-12-01 04:30:00',
               '2022-12-01 04:40:00', '2022-12-01 04:50:00',
               '2022-12-01 05:00:00', '2022-12-01 05:10:00',
               '2022-12-01 05:20:00', '2022-12-01 05:30:00',
               '2022-12-01 05:40:00', '2022-12-01 05:50:00',
               '2022-12-01 06:00:00', '2022-12-01 06:10:00',
               '2022-12-01 06:20:00', '2022-12-01 06:30:00',
               '2022-12-01 06:40:00', '2022-12-01 06:50:00',
               '2022-12-01 07:00:00', '2022-12-01 07:10:00',
               '2022-12-01 07:20:00', '2022-12-01 07:30:00',
               '2022-12-01 07:40:00', '2022-12-01 07:50:00',
               '2022-12-01 08:00:00', '2022-12-01 08:10:00',
               '2022-12-01 08:20:00', '2022-12-01 08:30:00',
               '2022-12-01 08:40:00', '2022-12-01 08:50:00',
               '2022-12-01 09:00:00', '2022-12-01 09:10:00',
               '2022-12-01 09:20:00', ''2022-12-01 09:30:00', '2022-12-01 09:40:00',
               '2022-12-01 09:50:00', '2022-12-01 10:00:00',
               '2022-12-01 10:10:00', '2022-12-01 10:20:00',
               '2022-12-01 10:30:00', '2022-12-01 10:40:00',
               '2022-12-01 10:50:00', '2022-12-01 11:00:00',
               '2022-12-01 11:10:00', '2022-12-01 11:20:00',
               '2022-12-01 11:30:00', '2022-12-01 11:40:00',
               '2022-12-01 11:50:00', '2022-12-01 12:00:00',
               '2022-12-01 12:10:00', '2022-12-01 12:20:00',
               '2022-12-01 12:30:00', '2022-12-01 12:40:00',
               '2022-12-01 12:50:00', '2022-12-01 13:00:00',
               '2022-12-01 13:10:00', '2022-12-01 13:20:00',
               '2022-12-01 13:30:00', '2022-12-01 13:40:00',
               '2022-12-01 13:50:00', '2022-12-01 14:00:00',
               '2022-12-01 14:10:00', '2022-12-01 14:20:00',
               '2022-12-01 14:30:00', '2022-12-01 14:40:00',
               '2022-12-01 14:50:00', '2022-12-01 15:00:00',
               '2022-12-01 15:10:00', '2022-12-01 15:20:00',
               '2022-12-01 15:30:00', '2022-12-01 15:40:00',
               '2022-12-01 15:50:00', '2022-12-01 16:00:00',
               '2022-12-01 16:10:00', '2022-12-01 16:20:00',
               '2022-12-01 16:30:00', '2022-12-01 16:40:00',
               '2022-12-01 16:50:00', '2022-12-01 17:00:00',
               '2022-12-01 17:10:00', '2022-12-01 17:20:00',
               '2022-12-01 17:30:00', '2022-12-01 17:40:00',
               '2022-12-01 17:50:00', '2022-12-01 18:00:00',
               '2022-12-01 18:10:00', '2022-12-01 18:20:00',
               '2022-12-01 18:30:00', '2022-12-01 18:40:00',
               '2022-12-01 18:50:00', '2022-12-01 19:00:00',
               '2022-12-01 19:10:00', '2022-12-01 19:20:00',
               '2022-12-01 19:30:00', '2022-12-01 19:40:00',
               '2022-12-01 19:50:00', '2022-12-01 20:00:00',
               '2022-12-01 20:10:00', '2022-12-01 20:20:00',
               '2022-12-01 20:30:00', '2022-12-01 20:40:00',
               '2022-12-01 20:50:00','2022-12-01 21:00:00', '2022-12-01 21:10:00',
               '2022-12-01 21:20:00', '2022-12-01 21:30:00',
               '2022-12-01 21:40:00', '2022-12-01 21:50:00',
               '2022-12-01 22:00:00', '2022-12-01 22:10:00',
               '2022-12-01 22:20:00', '2022-12-01 22:30:00',
               '2022-12-01 22:40:00', '2022-12-01 22:50:00',
               '2022-12-01 23:00:00', '2022-12-01 23:10:00',
               '2022-12-01 23:20:00', '2022-12-01 23:30:00',
               '2022-12-01 23:40:00', '2022-12-01 23:50:00',
               '2022-12-02 00:00:00'],
              dtype='datetime64[ns]', freq='10T')

这里我们创建了一个从2022年12月1日到2022年12月2日之间每10分钟记录一个时间的日期序列。

提取指定时间序列频率的分钟

接下来我们可以使用datetime库中的strftime()方法从DatetimeIndex对象中提取指定频率的分钟。例如,我们想要提取记录时间中的分钟数,并将其格式化为两位数,可以使用strftime()方法及格式化字符串%M,代码如下:

# 从DatetimeIndex对象中提取记录时间中的分钟数
minutes = times.strftime('%M')
print(minutes)

输出:

Index(['00', '10', '20', '30', '40', '50', '00', '10', '20', '30', '40', '50',
       '00', '10', '20', '30', '40', '50', '00', '10', '20', '30', '40', '50',
       '00', '10', '20', '30', '40', '50', '00', '10', '20', '30', '40', '50',
       '00', '10', '20', '30', '40', '50', '00', '10', '20', '30', '40', '50',
       '00', '10', '20', '30', '40', '50', '00', '10', '20', '30', '40', '50',
       '00', '10', '20', '30', '40', '50', '00', '10', '20', '30', '40', '50',
       '00', '10', '20', '30', '40', '50', '00'],
      dtype='object')

这里我们使用strftime()方法并指定格式化字符串%M提取DatetimeIndex对象中记录时间的分钟数,并将其存储在一个字符串数组中。

结论

使用Python Pandas,我们可以轻松提取DatetimeIndex对象中指定时间序列频率的分钟数。我们可以将这个功能应用到时间序列数据处理中,例如绘制时序数据可视化图表,执行时间序列分析等。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程