我需要创建从 '2014-07-05'
到 '2024-07-05'
的日期范围,间隔为 6 个月,'2014-07-05', '2015-01-05', '2015-07-05'
....我正在使用 pd.date_range('2014-07-05', '2024-07-05', freq = '6M')
,但输出不遵循我的日期,它从 '2014-07-31'
而不是 >'2014-07-05'
。我已阅读文档,但找不到解决方案。
我正在尝试使用 pd.date_range,因为它是创建范围的更直接的方法。
import pandas as pd
mydates = pd.date_range('2014-07-05', '2024-07-05', freq = '6M')
我期待:
DatetimeIndex(['2014-07-05', '2015-01-05', '2015-07-05',...,'2024-01-05','2024-07-05'],dtype='datetime64[ns]', freq='6M')
我收到:
DatetimeIndex(['2014-07-31', '2015-01-31', '2015-07-31', '2016-01-31',
'2016-07-31', '2017-01-31', '2017-07-31', '2018-01-31',
'2018-07-31', '2019-01-31', '2019-07-31', '2020-01-31',
'2020-07-31', '2021-01-31', '2021-07-31', '2022-01-31',
'2022-07-31', '2023-01-31', '2023-07-31', '2024-01-31'],
dtype='datetime64[ns]', freq='6M')
最佳答案
如果我没有正确理解你的问题,那么这段代码适合你:
from datetime import datetime
import pandas as pd
start = datetime.strptime('2014-07-05', '%Y-%m-%d')
end = datetime.strptime('2024-07-05', '%Y-%m-%d') + pd.offsets.MonthBegin()
mydate = pd.date_range(start, end,freq='6M')
mydate -= pd.offsets.Day(mydate[0].day - start.day)
并给出:
DatetimeIndex(['2014-07-05', '2015-01-05', '2015-07-05', '2016-01-05',
'2016-07-05', '2017-01-05', '2017-07-05', '2018-01-05',
'2018-07-05', '2019-01-05', '2019-07-05', '2020-01-05',
'2020-07-05', '2021-01-05', '2021-07-05', '2022-01-05',
'2022-07-05', '2023-01-05', '2023-07-05', '2024-01-05',
'2024-07-05'],
dtype='datetime64[ns]', freq=None)
关于您的代码,我已经安排了两件事:
我在
end
日期前添加了 1 个月,以便将之前排除的值包含在范围内我将正确的偏移量添加到
mydate
关于python - 如何在 Python 中创建从特定日期到另一个相隔 6 个月的日期范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58174283/