如何将日期时间索引的日期更改为月初

时间:2019-05-15 16:51:59

标签: python pandas datetime

我有一个具有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 我该如何在python中使用pandas数据框?

1 个答案:

答案 0 :(得分:0)

使用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)