Панды: изменить день

У меня есть серия в формате datetime и времени, и мне нужно изменить день на 1 для каждой записи. Я думал о многочисленных простых решениях, но никто из них не работает для меня. Пока что единственное, что на самом деле работает

  • установить серию как индекс
  • Запрос месяца и года из индекса
  • Восстановить новый временной ряд, используя год, месяц и 1

Это не может быть так сложно, не так ли? Начался месяц, но, к сожалению, это offset , это бесполезно. Кажется, что нет функции set() для метода и даже меньше функциональности, в то время как серия является столбцом, а не (частью) самого индекса.

Единственный связанный с этим вопрос был, но трюк, используемый там, здесь не применим.

Вы можете использовать .apply и datetime.replace , например:

 import pandas as pd from datetime import datetime ps = pd.Series([datetime(2014, 1, 7), datetime(2014, 3, 13), datetime(2014, 6, 12)]) new = ps.apply(lambda dt: dt.replace(day=1)) 

дает:

 0 2014-01-01 1 2014-03-01 2 2014-06-01 dtype: datetime64[ns]