Pandas Timestamp (год = 2011, месяц = ​​8, день = 1) возвращает последний день месяца - PullRequest
0 голосов
/ 06 октября 2018

Требуется динамически создать диапазон времени с 1 августа 2011 г. до последнего месяца существующих данных.Не знаю, почему я возвращаю временные ряды с последним днем ​​месяца вместо первого.

Есть предложения?Пожалуйста, игнорируйте мои мелкие комментарии к моим коллегам.

# Our Formatting System is garbage - So Have to code it to non garbage
    start_date = pd.Timestamp(2011, 8, 1,)
    months = pd.date_range(start_date, periods=len(timeseries[0]), freq='M')
    print(months)

enter image description here

1 Ответ

0 голосов
/ 06 октября 2018

Используя freq M, вы указываете использовать конец месяца.См. эту ссылку для описания смещения даты и времени в пандах, но вкратце M равно

частота окончания месяца

Использование 'MS'(начало месяца) вместо:

>>> start_date = pd.Timestamp(2011, 8, 1,)
>>> months = pd.date_range(start_date, periods=10, freq='MS')
>>> print(months)
DatetimeIndex(['2011-08-01', '2011-09-01', '2011-10-01', '2011-11-01',
               '2011-12-01', '2012-01-01', '2012-02-01', '2012-03-01',
               '2012-04-01', '2012-05-01'],
              dtype='datetime64[ns]', freq='MS')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...