Python 将天添加到日期时间序列

Python 将天添加到日期时间序列,python,pandas,Python,Pandas,如果datetime系列中的某个日期是周末(美国),我想将该日期提前到下一个星期一。到目前为止,我已经想到了这一点,但它显然不起作用,原因可能有几个,至少是因为timedelta的days参数不能是一个系列 df['Open Date'] = np.where(df['Open Date'].dt.weekday > 4, df['Open Date'] + timedelta(days=7-df['Open Date'].dt.weekday), df['Open Date']) 如何

如果datetime系列中的某个日期是周末(美国),我想将该日期提前到下一个星期一。到目前为止,我已经想到了这一点,但它显然不起作用,原因可能有几个,至少是因为timedelta的days参数不能是一个系列

df['Open Date'] = np.where(df['Open Date'].dt.weekday > 4, df['Open Date'] + timedelta(days=7-df['Open Date'].dt.weekday), df['Open Date'])

如何将其更改为与系列一起使用?

pd.offset。工作日(0)
将周末改为下周一,工作日不变

import pandas as pd

df = pd.DataFrame({'date': pd.date_range('2020-12-20', '2020-12-29', freq='D')})

df['date_shift'] = df['date'] + pd.offsets.BusinessDay(0)


我不知道这个函数。这是简洁和可怕的。谢谢
         date date_shift
0  2020-12-20 2020-12-21  # Sunday -> Monday
1  2020-12-21 2020-12-21  # Monday -> Monday
2  2020-12-22 2020-12-22
3  2020-12-23 2020-12-23
4  2020-12-24 2020-12-24
5  2020-12-25 2020-12-25  # Christmas Holiday Friday Unchanged
6  2020-12-26 2020-12-28  # Saturday -> Monday
7  2020-12-27 2020-12-28  # Sunday -> Monday
8  2020-12-28 2020-12-28
9  2020-12-29 2020-12-29