熊猫DATE_RANGE产生在月初的月度数据

问题描述 投票:35回答:1

我试图生成月度数据,其中的天总是在月初的日期范围:

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

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

我见过的其他问题请教一下生成的数据,始终是在每月的某一天,有答案说这是不可能的,但是个月,自想必一定是可能的!

python pandas date-range
1个回答
82
投票

您可以通过改变从freq'M'参数'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'的开始(月开始频率)。

© www.soinside.com 2019 - 2024. All rights reserved.