在 Python 中创建日期范围列表

Fariba Laiq 2023年1月30日 2022年5月17日
  1. 在 Python 中使用 Pandas 创建日期范围列表
  2. 在 Python 中手动创建日期范围列表
在 Python 中创建日期范围列表

我们将介绍一些生成日期范围列表的方法。一种方法是使用 pandas 库。Pandas 直接支持完成任务。另一种方法是使用 for 循环手动设计自己的逻辑来生成日期。

我们将看一些示例,例如通过输入开始日期和之后的 k 天来创建日期范围的列表,或者我们可以输入开始日期和结束日期。

在 Python 中使用 Pandas 创建日期范围列表

我们将使用 pandas 的 date_range() 函数,其中我们将传递开始日期和之后的天数(称为句点)。在这里,我们还使用了 datetime 库来格式化日期,以便我们可以以 DD-MM-YY 格式输出日期。我们还可以定义时间戳和日期。

示例代码:

在此示例中,我们以 DD-MM-YY 的格式传递开始日期和周期。因此,在输出中,我们可以看到从开始日期开始的一系列天数以及之后的 periods 数。

# python 3.x
import datetime
import pandas as pd
start = datetime.datetime.strptime("01-12-2021", "%d-%m-%Y")
date_generated = pd.date_range(start, periods=5)
print(date_generated.strftime("%d-%m-%Y"))

输出:

Index(['01-12-2021', '02-12-2021', '03-12-2021', '04-12-2021', '05-12-2021'], dtype='object')

现在我们将看另一个示例,其中我们将传递开始日期结束日期。程序将输出这两个日期之间的日期范围。

# python 3.x
import datetime
import pandas as pd
start = datetime.datetime.strptime("01-12-2021", "%d-%m-%Y")
end = datetime.datetime.strptime("07-12-2021", "%d-%m-%Y")
date_generated = pd.date_range(start, end)
print date_generated.strftime("%d-%m-%Y")

输出:

Index(['01-12-2021', '02-12-2021', '03-12-2021', '04-12-2021', '05-12-2021',
       '06-12-2021', '07-12-2021'],
      dtype='object')

在 Python 中手动创建日期范围列表

借助 for 循环和 timedelta(),我们可以手动生成列表。timedelta()datetime 库下定义的函数。这里 delta 表示差异。在它的帮助下,我们可以用日期加减 delta 来分别获得下一个或上一个日期。假设我们有一个日期 01-12-2021。现在,如果我们给它加 1,我们的日期将是 02-12-2021。我们将在 for 循环中使用该逻辑。For 循环被迭代,我们将添加带有开始日期的变量以获得下一个日期,然后我们将当前生成的日期附加到我们的列表中,直到我们得到完整的日期范围。

示例代码:

# python 3.x
import datetime
start = datetime.date(2021,12,10)
periods = 5
daterange = []
for day in range(periods):
  date = (start + datetime.timedelta(days = day)).isoformat()
  daterange.append(date)
print(daterange)

输出:

['2021-12-10', '2021-12-11', '2021-12-12', '2021-12-13', '2021-12-14']
Author: Fariba Laiq
Fariba Laiq avatar Fariba Laiq avatar

I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.

LinkedIn

相关文章 - Python DateTime