Python Pandas – 提取带有指定时间序列频率的 DateTimeIndex 的日期

Python Pandas – 提取带有指定时间序列频率的 DateTimeIndex 的日期

在进行时间序列分析时,我们经常需要提取日期中的特定部分,比如年、月、日等,以进行更加细致的分析。Python Pandas 提供了强大的时间序列处理功能,可以方便地实现这一操作。接下来,我们就来介绍如何提取带有指定时间序列频率的 DateTimeIndex 的日期。

准备工作

首先,我们需要导入 Pandas 模块并生成一个示例 DateTimeIndex,方便后续的操作。

import pandas as pd

# 生成一个频率为1小时的 DateTimeIndex
index = pd.date_range('2022-01-01 00:00:00', '2022-01-02 00:00:00', freq='1H')

在上述代码中,我们通过 pd.date_range() 方法生成一个频率为1小时的 DateTimeIndex,起始时间为 2022-01-01 00:00:00,结束时间为 2022-01-02 00:00:00。我们可以通过打印 index,查看生成的 DateTimeIndex。

print(index)

输出结果如下:

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

如上所示,我们成功生成了一个频率为1小时的 DateTimeIndex。

提取日期

接下来,我们就可以开始通过 Pandas 提供的方法,提取 DateTimeIndex 中的日期。

提取年

我们可以通过 year 方法,直接提取 DateTimeIndex 中的年。

# 提取年
print(index.year)

输出结果如下:

Int64Index([2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
            2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
            2022, 2022, 2022],
           dtype='int64')

我们可以看到,成功提取了 DateTimeIndex 中的年份。

提取月

同样地,我们可以通过 month 方法,直接提取 DateTimeIndex 中的月份。

# 提取月
print(index.month)

输出结果如下:

Int64Index([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
           dtype='int64')

我们可以看到,成功提取了 DateTimeIndex 中的月份。

提取日

我们可以通过 day 方法,直接提取 DateTimeIndex 中的日。

# 提取日
print(index.day)

输出结果如下:

Int64Index([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
            1, 1, 2],
           dtype='int64')

我们可以看到,成功提取了 DateTimeIndex 中的日。

提取周几

我们可以通过 weekdaydayofweek 方法,直接提取 DateTimeIndex 中的周几。

# 提取周几
print(index.weekday)
print(index.dayofweek)

输出结果如下:

Int64Index([5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
            6, 6, 0],
           dtype='int64')
Int64Index([5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
            6, 6, 0],
           dtype='int64')

我们可以看到,weekdaydayofweek 方法都可以成功提取 DateTimeIndex 中的周几。

提取小时

我们可以通过 hour 方法,直接提取 DateTimeIndex 中的小时。

# 提取小时
print(index.hour)

输出结果如下:

Int64Index([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
            18, 19, 20, 21, 22, 23, 0],
           dtype='int64')

我们可以看到,成功提取了 DateTimeIndex 中的小时。

结论

通过上述介绍,我们学习了如何使用 Pandas 提取带有指定时间序列频率的 DateTimeIndex 中的日期,包括年、月、日、周几和小时等。这些操作为我们进行更加精细的时间序列分析提供了便利。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程