在 Python 中建立日期範圍列表

Fariba Laiq 2023年10月10日
  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']
作者: 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