将营业日添加到数据时间列[英] Adding Business days to datetime column

本文是小编为大家收集整理的关于将营业日添加到数据时间列的处理方法,想解了将营业日添加到数据时间列的问题怎么解决?将营业日添加到数据时间列问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我需要将工作日添加到数据框中现有列中列出的日期.列中的数据为 datetime64[ns] 类型.使用 Python 中的工作日 中的建议,我尝试了下面列出的代码.

import datetime
from pandas.tseries.offsets import BDay

df['Math Admin Date'] + BDay(1)

我收到以下错误消息:

TypeError: cannot use a non-absolute DateOffset in datetime/timedelta operations [<BusinessDay>]

如何将工作日添加到我的日期时间列?

推荐答案

不幸的是,偏移量不支持使用类似对象的数组的操作,因此您必须 apply 每个元素的偏移量:

In [208]:
import datetime as dt
from pandas.tseries.offsets import BDay
​
df = pd.DataFrame({'Math Admin Date':pd.date_range(start=dt.datetime(2015,6,1), end = dt.datetime(2015,6,30))})
df['Math Admin Date'].apply(lambda x: x + BDay(1))

Out[208]:
0    2015-06-02
1    2015-06-03
2    2015-06-04
3    2015-06-05
4    2015-06-08
5    2015-06-08
6    2015-06-08
7    2015-06-09
8    2015-06-10
9    2015-06-11
10   2015-06-12
11   2015-06-15
12   2015-06-15
13   2015-06-15
14   2015-06-16
15   2015-06-17
16   2015-06-18
17   2015-06-19
18   2015-06-22
19   2015-06-22
20   2015-06-22
21   2015-06-23
22   2015-06-24
23   2015-06-25
24   2015-06-26
25   2015-06-29
26   2015-06-29
27   2015-06-29
28   2015-06-30
29   2015-07-01
Name: Math Admin Date, dtype: datetime64[ns]

使用 Timedelta 可以,但目前不支持工作日:

df['Math Admin Date'] + pd.Timedelta(1,'D')

本文地址:https://www.itbaoku.cn/post/1727919.html