我有一个具有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数据框?
答案 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)