Python 将天添加到日期时间序列
如果datetime系列中的某个日期是周末(美国),我想将该日期提前到下一个星期一。到目前为止,我已经想到了这一点,但它显然不起作用,原因可能有几个,至少是因为timedelta的days参数不能是一个系列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']) 如何
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