2016-01-21 13 views
12

Ben gün ayın başında her zaman olduğu aylık verilerin bir tarih aralığı oluşturmak çalışıyorum:Pandalar date_range ayın başında aylık verileri oluşturmak için

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

Bu 1/31/1980, 2/29/1980 üretir , ve bunun gibi. Bunun yerine sadece 1/1/1980, 2/1/1980, ...

Başka bir soru gördüm, her zaman ayın belirli bir günü olan veri üretme hakkında soru sormak mümkün değildi, ancak ay başında kesinlikle mümkün olmalı!

cevap

27

Sen 'MS' için 'M' den freq değişkeni değiştirerek bunu yapabilirsiniz:

Bunun günümüze
d = pandas.date_range(start='1/1/1980', end='11/1/1990', freq='MS')  
print(d) 

şimdi baskı: Belgelerin offset aliases parçası haline

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) 

bak. Orada, 'M''un ayın sonu (ay sonu frekansı) iken, başlangıç ​​için (ay başlangıç ​​frekansı) olduğunu belirtir.