我要计算两列之间的工作日,类型为pandas.core.series.Series
仅在接收日期和完成日期之间
我正在尝试使用np.busday_count(接收日期,完成日期,weekmask =“星期五星期六”)
但我得到了:
TypeError:迭代器操作数0 dtype无法从 dtype('M8 [us]')转换为dtype('M8 [D]'),根据规则“安全”
这是我数据框的一部分:
Received Complete
0 2018-09-10 2018-09-25
1 2018-07-16 2018-08-13
2 2018-07-05 2018-07-11
3 2018-07-05 2018-07-23
4 2018-07-26 2018-08-14
5 2018-07-04 2018-08-28
6 2018-07-05 2018-07-10
7 2018-07-05 2018-07-10
8 2018-07-05 2018-07-22
9 2018-07-05 2018-07-22
10 2018-07-05 2018-07-19
答案 0 :(得分:1)
如错误所示,使用'datetime64[D]'
转换为np.busday_count
之前:
res = np.busday_count(df['Received'].values.astype('datetime64[D]'),
df['Complete'].values.astype('datetime64[D]'),
weekmask= "Fri Sat")
# array([ 4, 8, 2, 6, 6, 16, 2, 2, 6, 6, 4], dtype=int64)