目标:通过将事物设为二进制来识别假期前2天和假期后3天。
详细信息:具体来说,我正在尝试使用TRUE或FALSE得出df ['is_2_days_before']和df ['is_3_days_after']的结果。
import pandas as pd
from pandas.tseries.holiday import USFederalHolidayCalendar as calendar
dr = pd.date_range(start='2015-07-01', end='2015-07-31')
df = pd.DataFrame()
df['Date'] = dr
cal = calendar()
holidays = cal.holidays(start=dr.min(), end=dr.max())
df['holiday'] = df['Date'].isin(holidays)
df
上面的代码仅标识哪些日期是假期。
任何帮助将不胜感激。
答案 0 :(得分:2)
我们只需要使用DateOffset
df['2 day before holiday'] = df['Date'].isin(holidays-pd.DateOffset(2))
df['3 day after holiday'] = df['Date'].isin(holidays+pd.DateOffset(3))