Python で日付の範囲のリストを作成する

Fariba Laiq 2023年10月10日
  1. Python で Pandas を使用して日付の範囲のリストを作成する
  2. Python で手動で日付範囲のリストを作成する
Python で日付の範囲のリストを作成する

日付の範囲のリストを生成するためのいくつかの方法を紹介します。そのための 1つの方法は、pandas ライブラリを使用することです。Pandas は、タスクを達成するための直接サポートを持っています。もう 1つの方法は、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')

次に、開始日終了日を渡す別の例を見ていきます。プログラムは、これら 2つの日付の間の日付の範囲を出力します。

# 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 ライブラリで定義されている関数です。ここで、デルタは差を意味します。その助けを借りて、日付でデルタを加算または減算して、それぞれ次の日付または前の日付を取得できます。日付が 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