熊猫日期范围包括系列的开始日期

dRan1 = pd.date_range(start ='1-15-2018', 

           end ='8-1-2018', freq ='M') 

上面的代码生成以下系列:


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')

但我想要这个:


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')


尚方宝剑之说
浏览 123回答 3
3回答

一只名叫tom的猫

我认为下面可以是一种解决方案,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'))

慕村225694

可能是自定义函数:from pandas.tseries.offsets import MonthEnddef 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')

慕运维8079593

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')但是,您的日期之间的间隔并不统一,所以请考虑这是否有用。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python