Python中的pandas.date_range()方法

2025年1月5日 | 阅读 7 分钟

引言

在 Python 中进行数据分析和处理的世界里,pandas 作为功能丰富的库,无疑是 Python 中的佼佼者。它提供的各种函数中,就包括 'date_range()' 函数,该函数用于生成一个日期数组。因此,在处理时间序列数据时,这个方法显然非常重要,尤其是在金融管理、经济学和气象学等领域。本文将带您深入探索 'date_range()' 方法,让您了解它的语法、参数及其实际应用。阅读完本文后,您应该能够更深入地理解 'date_range()' 如何在 Python 编程语言中使用与时间相关的属性。在学习 pandas.date_range() 之前,我们先来讨论一下时间序列数据。

理解时间序列数据

在本次教程中讲解了 'date_range()' 方法后,我将解释时间序列数据的概念。时间序列数据是指在一系列等间隔的时间点上收集或输入的数据集。因此,它可能是一系列在某个时间点或时间间隔内收集的数据,这些时间间隔可能是相等的。数据点可能是各种指标的不同组合;例如,股票价格、温度读数和销售数字可能在特定的日期和时间有所不同。

pandas 库提供了强大的功能支持,通过专门为直接处理时间信息而构建的数据结构和函数,可以轻松处理时间序列数据。在此,'date_range()' 函数被提及,它方便用户创建固定的“DatetimeIndex”。

pandas.date_range() 的语法和参数

使用 **'date_range()'** 函数,可以生成日期和时间的序列,然后创建一个 **'DatetimeIndex'**。让我们看一下它的语法:

datetime.datetime.date_range(start=None, end=None, periods=None, freq=None, tz=None, normalize=False, name=None, closed=None, **kwargs)

以下是参数的 breakdown:

  • start (str 或 datetime-like, 可选): 用于数据范围的“开始”。
  • end (str 或 datetime-like, 可选): 标题中指定的周期范围可作为结束日期。
  • periods (int, 可选): 必须定义每个携带者在我们世界中需要花费的周期数,以便能够记住。
  • freq (str 或 DateOffset, 默认值 'D'): 数据通过大量地面和天基仪器为我们提供观测数据。它也可以是一个字母字符串,如 'D' 代表天,'M' 代表月,'H' 代表小时等,或者是一个 pandas 的 'DateOffset' 对象。
  • tz (str 或 tzinfo, 可选): 转换为家庭本地化 DatetimeIndex 的时区名称。
  • normalize (bool, 默认值 False): 为了使其准确,如果为 True,则生成的时间跨度将开始/结束日期设置为午夜。
  • name (str, 默认值 None): 以及 'DatetimeIndex' 的“名称”。
  • closed ({None, 'left', 'right'}, 可选): 虚拟平台为修改截止日期和结束日期等功能提供了巨大的空间。如果为 None,则开始日期和结束日期都包含在句子本身中。如果为 'left',则仅考虑开始日期。如果为 'right',则仅提供结束日期。请检查下面给出的句子,然后使用提供的空白处造句。使用以下单词:官僚的 (bureaucratic)、仔细审查 (scrutinize)、贬低 (demean)、冷漠 (insensitivity)、同情 (compassion)。
  • kwargs: 额外的关键字参数将传递给 Pandas Timestamp 类。

生成日期范围

首先,我们将讨论 **'date_range()'** 方法的实际应用,包括不同频率和配置变体的日期范围。

示例 1:生成每日日期范围

输出

DatetimeIndex(['2024-01-01', '2024-01-02', '2024-01-03', '2024-01-04',
               '2024-01-05', '2024-01-06', '2024-01-07', '2024-01-08',
               '2024-01-09', '2024-01-10', '2024-01-11', '2024-01-12',
               '2024-01-13', '2024-01-14', '2024-01-15', '2024-01-16',
               '2024-01-17', '2024-01-18', '2024-01-19', '2024-01-20',
               '2024-01-21', '2024-01-22', '2024-01-23', '2024-01-24',
               '2024-01-25', '2024-01-26', '2024-01-27', '2024-01-28',
               '2024-01-29', '2024-01-30', '2024-01-31'],
              dtype='datetime64[ns]', freq='D')

说明

  • 您可以看到 2024 年 1 月份的每日日期。“pd.date_range(start = str(start_OF_JAN2024), end = str(end_OF_JAN2024), freq = 'D')”
  • 对于指定的开始日期('start'),**'start'** 参数的值为 '2024-01-01'。
  • **'end'** 表达式表示 2024 年 1 月 31 日的事件。
  • 字符 'freq' 在句子中起着重要作用,它决定了下一个元音的发音,在本例中为 'D'。
  • 最终,它让我们生成一个 **'datetime 对象'** 而不是 'DatetimeIndex'。
  • 它包含了从 2024 年 1 月 1 日到 2024 年 1 月 31 日这四十二天的日期。
  • 可以看到日期之间的不同天数。
  • 另一方面,Ranging 是一个包含运算符,它成对出现——第一个包含参数是开始,第二个包含参数是结束。

示例 2:生成月度日期范围

输出

DatetimeIndex(['2024-01-31', '2024-02-29', '2024-03-31', '2024-04-30',
               '2024-05-31', '2024-06-30', '2024-07-31', '2024-08-31',
               '2024-09-30', '2024-10-31', '2024-11-30', '2024-12-31'],
              dtype='datetime64[ns]', freq='M')

说明

  • **'pd.date_range()'** 生成 2024 年的月度日期范围,从 1 月 1 日到 12 月 31 日。
  • **'start'** 变量将被设置为 '2024-01-01',这表示开始日期。
  • '2024-12-31' 是 **'end'** 参数的值,它描述了结束日期。
  • 频率设置为 **'M'**,该符号表示月度。
  • 结果,'**date_range'** 被赋值为 DatetimeIndex。
  • 每个月的最后一天都会生成一个会议,日期将设置在该月末。
  • 范围从 2024 年 1 月 31 日到 2024 年 12 月 31 日,包含所有可能的日期。

示例 3:生成自定义频率日期范围

输出

DatetimeIndex(['2024-01-01 00:00:00', '2024-01-01 06:00:00',
               '2024-01-01 12:00:00', '2024-01-01 18:00:00',
               '2024-01-02 00:00:00'],
              dtype='datetime64[ns]', freq='6H')

说明

  • **'pd.date_range()'** 生成一个自定义频率的日期范围,然后该频率可以作为参数传递来创建频率多边形。
  • **'start'** 用于显示日期 '2024-01-01',这是引用的开始。它们存在于物理和虚拟环境中,并跟踪与各种广告的互动。
  • 起始日期是 '2024-01-02',这是范围的结束日期。
  • 终端命令 **'freq 6H'** 告诉设备每 6 小时发送一次数据。
  • 创建的日期范围是一个 **'DatetimeIndex'** 对象 **date_range**。
  • 日期被设置为每隔六小时。
  • 范围从 2024 年 1 月 1 日 00:00:00 开始,到 2024 年 1 月 2 日 23:59:59 结束,均包含在内。

处理时区

**date_range()** 方法还通过指定 **tz** 参数来处理时区。让我们看一个例子:

输出

DatetimeIndex(['2024-01-01 00:00:00-05:00', '2024-01-02 00:00:00-05:00',
               '2024-01-03 00:00:00-05:00', '2024-01-04 00:00:00-05:00',
               '2024-01-05 00:00:00-05:00', '2024-01-06 00:00:00-05:00',
               '2024-01-07 00:00:00-05:00', '2024-01-08 00:00:00-05:00',
               '2024-01-09 00:00:00-05:00', '2024-01-10 00:00:00-05:00',
               '2024-01-11 00:00:00-05:00', '2024-01-12 00:00:00-05:00',
               '2024-01-13 00:00:00-05:00', '2024-01-14 00:00:00-05:00',
               '2024-01-15 00:00:00-05:00', '2024-01-16 00:00:00-05:00',
               '2024-01-17 00:00:00-05:00', '2024-01-18 00:00:00-05:00',
               '2024-01-19 00:00:00-05:00', '2024-01-20 00:00:00-05:00',
               '2024-01-21 00:00:00-05:00', '2024-01-22 00:00:00-05:00',
               '2024-01-23 00:00:00-05:00', '2024-01-24 00:00:00-05:00',
               '2024-01-25 00:00:00-05:00', '2024-01-26 00:00:00-05:00',
               '2024-01-27 00:00:00-05:00', '2024-01-28 00:00:00-05:00',
               '2024-01-29 00:00:00-05:00', '2024-01-30 00:00:00-05:00',
               '2024-01-31 00:00:00-05:00'],
              dtype='datetime64[ns, America/New_York]', freq='D')

说明

  • 因此,**'pd.date_range()'** 将用于在 'America/New_York' 时区创建从 1 月 24 日开始的每日日期范围。
  • **start** 参数被赋值为 '2024-01-01',表示日期的开始。
  • **'end'** 变量是 '2024-01-31',表示流程必须结束的日期。
  • 频率设置为 **'D'**,以定义每日事件。
  • **tz** 参数设置为 'America/Eastern',用于纽约或东部时区。
  • 随后结果是一个包含时区信息的 **'date_range'** 对象,因为时区信息存储在 DatetimeIndex 中。
  • 我们正在生成东部时区的日期。
  • 2024 年选举范围:该范围从 2024 年 1 月 1 日到 2024 年 1 月 31 日,均包含 **EST**。

Pandas.date_range() 方法的应用场景

Python 中的 **Pandas 库的 pd.date_range()** 函数在金融、社交媒体、体育、天气预报和库存管理等多个领域得到了越来越多的应用。以下是一些该函数证明有益的常见场景:

  1. **时间序列分析:** 时间序列分析是金融、经济和气象学等领域的一项重要活动。pd.date_range() 提供了生成日期范围以作为时间序列数据分析的索引的过程,从而促进了趋势、季节性和异常检测。
  2. **数据处理和采样:** 最关键的是,时间维度包含样本频率到定义的级别。pd.date_range() 可以生成规则的数值数组,然后这些数组可以应用于时间点序列的重采样和降采样操作。
  3. **数据可视化:** 将给定句子人性化:通常,将时间序列数据显示为时间的函数。pd.date_range() 为均匀分布的数据索引提供了空间,这些索引稍后用作图表的 x 轴标签,从而提高了数据可视化效果的理解度。
  4. **基于时间的索引和切片:** 基于时间的索引减少了查找特定数据的需求,提供了根据时间标准进行数据切片和选择的机会。pd.date_range() 填充了构建日期索引,这些索引对于索引和切片操作非常有用,因此通过它可以更容易地获取特定时间段的关注点。
  5. **时间数据聚合:** 在时间序列分析中,在狭窄的时间范围内汇总数据是一项常见操作。pd.date_range() 创建了时间间隔的日期范围,这些日期对于何时应用聚合函数到数据上至关重要。
  6. **时区转换:** 通常,我需要处理来自不同时区的数据。我需要将时间戳从观察到它的时间转换为通用时区,就像其他数据用户也会做的那样。pd.date_range() 类的布尔值只是一个经过时区调整的日期范围,以确保不同时区之间的转换精度以及跨数据集的一致分析。

结论

在这里,我们学习了 pandas 库中 **date_range** 方法的使用,用于生成日期范围和 DatetimeIndex 对象。我们深入研究了它的结构和参数,并展示了如何交换日期范围、处理时区等的实际示例。因此,知道如何成功应用 date_range() 方法将肯定为您提供一个宝贵的工具,用于处理时间作为获取分析有用信息关键特征的大型数据集。