我想根据任意两个日期生成日期范围。例如:
start_date = "2021-01-15"
end_date = "2021-04-15"
pd.date_range(start_date, end_date, freq="M")
这导致 DatetimeIndex(['2021-01-31', '2021-02-28', '2021-03-31'], dtype='datetime64[ns]', freq='M')
.
我想更新这个,以获得所有月份,包括在 start_date
及 end_date
. 因此,我想得到这样的东西 DatetimeIndex(['2021-01-31', '2021-02-28', '2021-03-31', '2021-04-30'], dtype='datetime64[ns]', freq='M')
(注 '2021-04-30'
因为四月在美国 end_date
).
我知道还有其他频率选择(例如这里),我可以试试 freq="MS"
(月开始)包括最后一个月(4月),但第一个月(1月)将丢失。
我明白 pd.date_range
总是关心几天,这是有道理的,但因为这在我的情况下并不重要(我不关心几天,只关心几个月,不管输出是否会像这样) 2021-01-01
或 2021-01-31
甚至,例如。 2021-01-11
),我想知道是否有任何简单的解决方案可以奏效?
1条答案
按热度按时间tvz2xvvm1#
使用
period_range
如果仅与月份一起工作:对于转换为日期时间,可以使用
PeriodIndex.to_timestamp
具有DatetimeIndex.normalize
: