Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 计算不包括开始日期的工作日,并将结束日期包括在工作日计数中_Python_Pandas_Numpy - Fatal编程技术网

Python 计算不包括开始日期的工作日,并将结束日期包括在工作日计数中

Python 计算不包括开始日期的工作日,并将结束日期包括在工作日计数中,python,pandas,numpy,Python,Pandas,Numpy,有没有办法排除StartDate和EndDate,我使用了busday_计数,这肯定包括开始和排除结束日期 np.busday_count('2020-05-06', '2020-05-17') 出局:8的正确出局应该是7,因为第一天是星期三,我们不想把它算在内,下周到星期五算在内 提前感谢排除第一天: 您可以将开始日期和结束日期都增加1: >>> start = np.datetime64('2020-05-06') >>> end = np.dateti

有没有办法排除StartDate和EndDate,我使用了busday_计数,这肯定包括开始和排除结束日期

np.busday_count('2020-05-06', '2020-05-17')
出局:8的正确出局应该是7,因为第一天是星期三,我们不想把它算在内,下周到星期五算在内


提前感谢

排除第一天:

您可以将开始日期和结束日期都增加1:

>>> start = np.datetime64('2020-05-06')
>>> end = np.datetime64('2020-05-17')
>>> np.busday_count(start,end)
8
>>> np.busday_count(start+1,end+1)
7
第一个增量不包括开始日期,第二个增量包括计算中的结束日期


要排除第一个工作日,请执行以下操作:

>>> start = np.datetime64('2020-05-10')
>>> end = np.datetime64('2020-05-21')
>>> max(np.busday_count(start, end)-1+np.is_busday(end),0)
8

在这里,您要减去1,因为您总是希望排除第一个工作日,如果结束也是一个工作日,则添加1。最后,取一个带零的最大值,以避免没有工作日的情况,否则会得到-1。

hm,我认为这不会有帮助,因为如果StartDate是星期天,当我增加1时,它将是星期一,例如5/10-5/21,我应该增加到5/11-5/22,我得到了9天,这是不正确的,因为必须将天计算为5/10-5/21,星期一不应该被计算,那么星期二是1。。。8.星期四是21年5月5日所以你的意思是不包括第一个工作日,而不是开始日期吗?例5/1到5/16。。。返回11天我想排除开始日期,它应该是10排除5/1正确,但在您之前的评论中,您想排除5/10以及5/11。那么,无论是工作日还是第一个工作日,无论何时发生,您是否排除了第一个日期?确切地说,我想排除第一个工作日的到来。。。如果开始日是星期天,我想排除星期一。。。