如何与pandas.core.series.Series一起使用(np.busday_count)

时间:2019-01-17 10:36:45

标签: python python-3.x pandas numpy datetime

我要计算两列之间的工作日,类型为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

1 个答案:

答案 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)