使用python实现Excel的NETWORKDAYS逻辑以显示工作日(工作日)

2024-04-25 13:41:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用numpy.busday\u count方法在python中实现excel networkdays公式的逻辑。但我无法获得预期的输出。附件是excel和代码的输出 enter image description here

下面是代码

import numpy as np
from datetime import date
start_date = date(2020, 3, 30)
end_date = date(2020, 1,1)
np.busday_count(start_date, end_date)

o/p:-63 预期产出:-64

请帮我做这个


Tags: 方法代码importnumpy附件datecountnp
1条回答
网友
1楼 · 发布于 2024-04-25 13:41:33

numpy函数不包含end_date参数,而excel函数包含end_date参数。看5月5日的那排。Excel说5/4和5/5之间有两天,因为Excel计算的是第4天和第5天。努比只算第四名。这就是为什么你的答案只差1分。在python中尝试将end_date增加+1,以获得相同的结果

np.busday_count(start_date, end_date + datetime.timedelta(days=1)

但是,由于您的许多结束日期早于开始日期,这可能并不适用于所有情况。你可能需要这样做

max_date = max(start_date, end_date) + datetime.timedelta(days=1)
min_date = min(start_date, end_date)
np.busyday_count(min_date, max_date) * np.sign(end_date - start_date)

编辑1:numpy函数参数的顺序错误。我已经改正了

相关问题 更多 >