Используйте смещения даты Pandas, например ::100100
>>> pd.to_datetime('2019-04-09') + pd.offsets.Week(weekday=6)
Timestamp('2019-04-14 00:00:00')
Например, это меняет предоставленное значение datetime
в течение недели. Это векторизация, так что вы можете запустить его для серии, например:
temp['sunday_dates'] = temp['our_dates'] + pd.offsets.Week(weekday=6)
our_dates random_data sunday_dates
0 2010-12-31 4012 2011-01-02
1 2007-12-31 3862 2008-01-06
2 2006-12-31 3831 2007-01-07
3 2011-12-31 3811 2012-01-01
N.b. Параметр Week(weekday=INT)
имеет индекс 0 в понедельник и принимает значения от 0 до 6 (включительно). Таким образом, прохождение 0 дает все понедельники, 1 - все вторники и т. Д. Используя это, вы можете делать все в любой день недели, какой пожелаете.
N.b. Если вы хотите пойти в последнее воскресенье, просто поменяйте +
на -
, чтобы вернуться.
N.b. (Такая заметка, много преимуществ). Конкретную документацию по функциональности временных рядов можно найти здесь: https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html