This article is available in: English
この記事は、pythonを用いて連続した日時のリストを作成する方法の備忘録です。
方針は、pandasのdate_range
関数を使います。
この記事のコードは以下のgoogle colabで試すことができます。
Google Colab
pythonコード
- 下記の方法で連続した日付のリストを作成します。
from datetime import datetime
import pandas as pd
# 連続した日付のリストを作成
dt_list = pd.date_range(start='2022-01-01', periods=10, freq='D')
print(dt_list)
# 出力
DatetimeIndex(['2022-01-01', '2022-01-02', '2022-01-03', '2022-01-04',
'2022-01-05', '2022-01-06', '2022-01-07', '2022-01-08',
'2022-01-09', '2022-01-10'],
dtype='datetime64[ns]', freq='D')
- 始まりと終わりの日時を引数に指定して作成することもできます。
# 始まりと終わりの日時の指定でも作成できる
dt_list = pd.date_range(start='2022-01-01', end='2022-01-10', freq='D')
print(dt_list)
# 出力
DatetimeIndex(['2022-01-01', '2022-01-02', '2022-01-03', '2022-01-04',
'2022-01-05', '2022-01-06', '2022-01-07', '2022-01-08',
'2022-01-09', '2022-01-10'],
dtype='datetime64[ns]', freq='D')
- 引数に指定する時刻は、datetime型でも大丈夫です。
# 時刻の引数はdatetime型でもOK
start_dt = datetime(year=2022, month=1, day=1)
dt_list = pd.date_range(start=start_dt, periods=10, freq='D')
print(dt_list)
# 出力
DatetimeIndex(['2022-01-01', '2022-01-02', '2022-01-03', '2022-01-04',
'2022-01-05', '2022-01-06', '2022-01-07', '2022-01-08',
'2022-01-09', '2022-01-10'],
dtype='datetime64[ns]', freq='D')
- freq引数を変更することで、10分ごとや、30分ごとの日時のリストも作成できます。
# 10分ごとや、30分ごとの日時のリストも作成できる
dt_list = pd.date_range(start='2022-01-01', periods=10, freq='10min')
print(dt_list)
dt_list = pd.date_range(start='2022-01-01', periods=10, freq='30min')
print(dt_list)
# 出力
DatetimeIndex(['2022-01-01 00:00:00', '2022-01-01 00:10:00',
'2022-01-01 00:20:00', '2022-01-01 00:30:00',
'2022-01-01 00:40:00', '2022-01-01 00:50:00',
'2022-01-01 01:00:00', '2022-01-01 01:10:00',
'2022-01-01 01:20:00', '2022-01-01 01:30:00'],
dtype='datetime64[ns]', freq='10T')
DatetimeIndex(['2022-01-01 00:00:00', '2022-01-01 00:30:00',
'2022-01-01 01:00:00', '2022-01-01 01:30:00',
'2022-01-01 02:00:00', '2022-01-01 02:30:00',
'2022-01-01 03:00:00', '2022-01-01 03:30:00',
'2022-01-01 04:00:00', '2022-01-01 04:30:00'],
dtype='datetime64[ns]', freq='30T')
freqに指定できる引数は下記の公式リファレンスに詳しく載っています。
Time series / date functionality — pandas 2.2.3 documentation