我需要在 Python 中將兩個日期分成 6 個月的時間間隔。例如:
start_date = 2018-09-23
end_date = 2020-07-13
我想要的輸出是這樣的:
[2018-09-23, 2018-12-31] , [2019-01-01, 2019-06-30], [2019-07-01,2019-12-31], [2020-01-01, 2020-06-30], [2020-07-01, 2020-07-13]
你能幫我解決這個問題嗎?非常感謝
uj5u.com熱心網友回復:
pd.date_range() 回傳等距時間點的范圍。
start_date = '2018-09-23'
end_date = '2020-07-13'
pd.date_range(start_date, end_date, freq='6M')
輸出:
DatetimeIndex(['2018-09-30', '2019-03-31', '2019-09-30', '2020-03-31'], dtype='datetime64[ns]', freq='6M')
設定freq = '6M'創建等距日期時間點,從月底開始start_date。然后我們需要將所有日期向后移動從我們start_date到月底的距離,以確保我們的日期時間點以start_date
dates = pd.date_range(start_date, end_date, freq='6M', closed='left')
dates = dates - pd.offsets.Day((dates[0] - pd.to_datetime(start_date)).days)
輸出:
DatetimeIndex(['2018-09-23', '2019-03-24', '2019-09-23', '2020-03-24'], dtype='datetime64[ns]', freq=None)
我們現在可以遍歷我們的日期串列,并創建我們的日期范圍串列。
[[dates[i], dates[i 1]-pd.offsets.Day(1)] for i in range(len(dates)-1)]
輸出:
[[Timestamp('2018-09-23 00:00:00'), Timestamp('2019-03-23 00:00:00')],[Timestamp('2019-03-24 00:00:00'), Timestamp('2019-09-22 00:00:00')],[Timestamp('2019-09-23 00:00:00'), Timestamp('2020-03-23 00:00:00')]]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/337073.html
