2016-01-21 19 views
12

Tôi đang cố gắng để tạo ra một phạm vi ngày của dữ liệu hàng tháng mà ngày luôn là vào đầu tháng:Pandas DATE_RANGE để tạo ra dữ liệu hàng tháng tại đầu tháng

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

này tạo 1/31/1980, 2/29/1980 , v.v. Thay vào đó, tôi chỉ muốn 1/1/1980, 2/1/1980, ...

Tôi đã thấy câu hỏi khác hỏi về việc tạo dữ liệu luôn vào một ngày cụ thể trong tháng, với câu trả lời cho biết điều đó là không thể, nhưng đầu tháng chắc chắn phải có thể!

Trả lời

27

Bạn có thể làm điều này bằng cách thay đổi freq luận 'M'-'MS':

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

nên này bây giờ in:

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) 

Nhìn vào offset aliases một phần của tài liệu. Ở đó nó nói rằng 'M' là cho cuối tháng (tần số cuối tháng) trong khi 'MS' cho đầu (tần số bắt đầu tháng).

Các vấn đề liên quan