python : 在日期之间生成带有边界的月份

python : generate month between date with boundaries

先放上我的代码

start = datetime(2022,1,5)
end = datetime(2022,5,9)
date_range = (pd.date_range(start, end, freq='MS').to_pydatetime().tolist())
print(test)
if start not in date_range:
    test.insert(0,start)
if end not in date_range:
    test.append(end)

我想做的是生成两个日期之间的月份列表,其中包含这两个日期。 因此,如果我选择 5/1/2021 和 9/5/2022,生成的列表应该是:

[5/1/2021, 1/2/2021, 1/3/2021, 1/4/2021, 1/5/2021, 9/5/2021]

我的问题是 pandas date_range return 只有日期之间的月份 如果我选择频率 'MS',我需要立即检查是否必须插入日期与否(基本上,如果我将 1/1/2021 和 1/5/2021 作为开始日期和结束日期,它们将在这里)

在python中有没有更好的方法来做到这一点,或者如果在我这一代之后我被迫使用这两个?

谢谢

让我们在生成 date_range 之后使用 Index.union:

pd.date_range(start, end, freq='MS').union([start, end])

DatetimeIndex(['2022-01-05', '2022-02-01', '2022-03-01', '2022-04-01',
               '2022-05-01', '2022-05-09'],
              dtype='datetime64[ns]', freq=None)