2016-01-21 102 views
12

我試圖生成月度數據的日期範圍,其中天總是在月初:熊貓DATE_RANGE在每月的月初生成月度數據

pd.date_range(start='1/1/1980', end='11/1/1991', freq='M') 

這產生1/31/19802/29/1980 , 等等。相反,我只是想1/1/19802/1/1980,...

我見過的其他問題請教一下生成的數據,始終是在每月的某一天,有答案說這是不可能的,但是月初的一定是可以的!

回答

27

您可以通過改變從'M'freq參數'MS'做到這一點:

d = pandas.date_range(start='1/1/1980', end='11/1/1990', freq='MS')  
print(d) 

這應該現在打印:

DatetimeIndex(['1980-01-01', '1980-02-01', '1980-03-01', '1980-04-01', 
       '1980-05-01', '1980-06-01', '1980-07-01', '1980-08-01', 
       '1980-09-01', '1980-10-01', 
       ... 
       '1990-02-01', '1990-03-01', '1990-04-01', '1990-05-01', 
       '1990-06-01', '1990-07-01', '1990-08-01', '1990-09-01', 
       '1990-10-01', '1990-11-01'], 
       dtype='datetime64[ns]', length=131, freq='MS', tz=None) 

查找到文件的offset aliases一部分。在那裏它指出'M'是月底(月末頻率),而'MS'爲月初(月月開始頻率)。