3 回答
TA贡献1906条经验 获得超3个赞
我认为下面可以是一种解决方案,
pd.date_range(start='1-15-2018', end='1-15-2018').union(pd.date_range(
start='1-15-2018',end='8-31-2018', freq='M', closed='right'))
TA贡献1880条经验 获得超4个赞
可能是自定义函数:
from pandas.tseries.offsets import MonthEnd
def myfunc(s,e):
#check if start date is monthend
if pd.to_datetime(s).date()==(pd.to_datetime(s)+ MonthEnd(0)).date():
return pd.date_range(s,e, freq ='M') #dont append
else: #else
return pd.date_range(s,e, freq ='M').insert(0,pd.to_datetime(s)) #insert the date
测试运行:
myfunc('1-15-2018','8-1-2018')
#DatetimeIndex(['2018-01-15', '2018-01-31', '2018-02-28', '2018-03-31',
# '2018-04-30', '2018-05-31', '2018-06-30', '2018-07-31'],
# dtype='datetime64[ns]', freq='M')
myfunc('1-31-2018','8-1-2018')
#DatetimeIndex(['2018-01-31', '2018-02-28', '2018-03-31', '2018-04-30',
# '2018-05-31', '2018-06-30', '2018-07-31'],
# dtype='datetime64[ns]', freq='M')
TA贡献1876条经验 获得超5个赞
insert您可以使用该功能添加第一个日期。
dRan1.insert(0, pd.to_datetime('2018-01-15'))
DatetimeIndex(['2018-01-15', '2018-01-31', '2018-02-28', '2018-03-31',
'2018-04-30', '2018-05-31', '2018-06-30', '2018-07-31'],
dtype='datetime64[ns]', freq='M')
但是,您的日期之间的间隔并不统一,所以请考虑这是否有用。
添加回答
举报