Как изменить дату для индекса datetime на начало месяца - PullRequest
0 голосов
/ 15 мая 2019

У меня есть датафрейм с DatetimeIndex, как показано ниже:

df.index
DatetimeIndex(['2013-07-27', '2013-08-03', '2013-08-10', '2013-08-17',
               '2013-08-24', '2013-08-31', '2013-09-07', '2013-09-14',
               '2013-09-21', '2013-09-28',
               ...
               '2018-11-03', '2018-11-10', '2018-11-17', '2018-11-24',
               '2018-12-01', '2018-12-08', '2018-12-15', '2018-12-22',
               '2018-12-29', '2019-01-05'],
              dtype='datetime64[ns]', name='wdate', length=285, freq=None)

Я хочу изменить каждую дату на начало месяца, т.е. 2013-07-27 должен измениться на 2013-07-01 Как мнесделать это с помощью pandas dataframe в python?

1 Ответ

0 голосов
/ 15 мая 2019

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

i = pd.DatetimeIndex(['2013-07-27', '2013-08-03', '2013-08-10', '2013-08-17',
       '2013-08-24', '2013-08-31', '2013-09-07', '2013-09-14',
       '2013-09-21', '2013-09-28',
       '2018-11-03', '2018-11-10', '2018-11-17', '2018-11-24',
       '2018-12-01', '2018-12-08', '2018-12-15', '2018-12-22',
       '2018-12-29', '2019-01-05', '2019-01-01'])

i - pd.to_timedelta(df.index.day - 1, unit='d')

DatetimeIndex(['2013-07-01', '2013-08-01', '2013-08-01', '2013-08-01',
               '2013-08-01', '2013-08-01', '2013-09-01', '2013-09-01',
               '2013-09-01', '2013-09-01', '2018-11-01', '2018-11-01',
               '2018-11-01', '2018-11-01', '2018-12-01', '2018-12-01',
               '2018-12-01', '2018-12-01', '2018-12-01', '2019-01-01',
               '2019-01-01'],
              dtype='datetime64[ns]', freq=None)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...