有没有比bdate_range()更好的方法来测量两个日期之间通过熊猫的工作日?
df = pd.DataFrame({ 'A' : ['1/1/2013', '2/2/2013', '3/3/2013'],
'B': ['1/12/2013', '4/4/2013', '3/3/2013']})
print df
df['A'] = pd.to_datetime(df['A'])
df['B'] = pd.to_datetime(df['B'])
f = lambda x: len(pd.bdate_range(x['A'], x['B']))
df['DIFF'] = df.apply(f, axis=1)
print df
Run Code Online (Sandbox Code Playgroud)
输出:
A B
0 1/1/2013 1/12/2013
1 2/2/2013 4/4/2013
2 3/3/2013 3/3/2013
A B DIFF
0 2013-01-01 00:00:00 2013-01-12 00:00:00 9
1 2013-02-02 00:00:00 2013-04-04 00:00:00 44
2 2013-03-03 00:00:00 2013-03-03 00:00:00 0
Run Code Online (Sandbox Code Playgroud)
谢谢!
我需要将工作日添加到数据框中现有列中列出的日期.列中的数据采用datetime64 [ns]类型.使用Python中的Business Days中的建议,我尝试了下面列出的代码.
import datetime
from pandas.tseries.offsets import BDay
df['Math Admin Date'] + BDay(1)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息:
TypeError: cannot use a non-absolute DateOffset in datetime/timedelta operations [<BusinessDay>]
Run Code Online (Sandbox Code Playgroud)
如何在我的datetime列中添加工作日?