3 回答

TA貢獻(xiàn)1826條經(jīng)驗(yàn) 獲得超6個贊
Pandas 支持通過自定義工作日提供您自己的假期。
該解決方案的好處是無縫支持相鄰的假期;例如,某些地區(qū)的節(jié)禮日和圣誕節(jié)。
# define custom business days
weekmask = 'Mon Tue Wed Thu Fri'
holidays = ['2018-10-11']
bday = pd.tseries.offsets.CustomBusinessDay(holidays=holidays, weekmask=weekmask)
# construct mask to identify when days must be sutracted
m1 = df['category'] == 'B'
m2 = df['day'].dt.weekday.isin([5, 6]) | df['day'].isin(holidays)
# apply conditional logic
df['day'] = np.where(m1 & m2, df['day'] - bday, df['day'])
print(df)
category day
0 A 2018-10-10
1 B 2018-10-10
2 C 2018-10-12
3 B 2018-10-12
4 C 2018-10-14
5 A 2018-10-15
編輯:根據(jù)您的評論,“我剛剛意識到我沒有問清楚我想要什么。我想找到前一個工作日”,您可以簡單地使用:
df['day'] -= bday
添加回答
舉報(bào)