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)
先放上我的代码
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)