Pandasで開始日、終了日などを指定して1時間毎の日時リスト、毎月の日付リストなどが作成できます。
コード
開始日から終了日までの月初日時のリストを出力する場合
import pandas as pd
import datetime as dt
start_date = dt.datetime(2022, 12, 10) #開始日を指定
end_date = dt.datetime(2023, 11, 15) #終了日を指定
dt_list = pd.date_range(start = start_date, end= end_date , freq='MS') #freq MS:月初
print(dt_list)
#DatetimeIndex(['2023-01-01', '2023-02-01', '2023-03-01', '2023-04-01',
# '2023-05-01', '2023-06-01', '2023-07-01', '2023-08-01',
# '2023-09-01', '2023-10-01', '2023-11-01'],
# dtype='datetime64[ns]', freq='MS')補足
dt_list = pd.date_range(start = start_date, end= end_date , freq='MS') #freq MS:月初「pd.date_range(start = DateTime1, end= DateTime2, freq=**)」でDateTime1からDateTime2までの期間で指定の周期の日時リストを出力してくれます。
周期は各種パラメータを設定することで変更できます。
“M”だと月末になりますので”MS”となるのが要注意です。
| freq | 内容 |
|---|---|
| B | 営業日頻度 |
| C | カスタム営業日頻度 |
| D | 暦日の頻度 |
| W | 毎週の頻度 |
| M | 月末頻度 |
| SM | 準月末頻度(15日と月末) |
| BM | 月末度数 |
| CBM | カスタム営業月末頻度 |
| MS | 月初めの頻度 |
| SMS | 半月開始頻度(1日と15日) |
| BMS | 営業月初頻度 |
| CBMS | カスタムの営業月開始頻度 |
| Q | 四半期末頻度 |
| BQ | 四半期終了頻度 |
| QS | 四半期開始頻度 |
| BQS | 事業四半期の開始頻度 |
| A,Y | 年末度数 |
| BA,BY | 年末度数 |
| AS、YS | 年の開始頻度 |
| BAS、BYS | 事業年度開始頻度 |
| BH | 営業時間頻度 |
| H | 毎時の頻度 |
| T、min | 分刻みの頻度 |
| S | 第二に頻度 |
| L、ミリ秒 | ミリ秒 |
| U、us | マイクロ秒 |
| N | ナノ秒 |

