我创建了数据框,我在其中使用 python 的工作日库添加工作日。在那个
workdays.networkdays
函数中,我传递了 start_date
、end_date
和 holidays
.
返回 start_date 和 end_date 之间的整个工作日数。工作日不包括周末和假期中确定的任何日期。
import workdays
final_df["Working_Days"] = final_df[["Time Period Year", "Time Period ID", "Num_Days"]].apply(lambda x:workdays.networkdays(start_date=datetime.date(int(x['Time Period Year']), x['Time Period ID'],1),end_date=datetime.date(x['Time Period Year'], x['Time Period ID'],x["Num_Days"]),holidays=agr_holiday),axis=1)
现在我必须添加星期六,因为 0.5 天意味着半天。
所以我用下面的代码得到一个月中有多少星期六:
newdf = [pd.date_range(x,y).weekday.isin([5]).sum() for x , y in zip(start_date, end_date)]
以上代码的输出:
[4, 5, 4, 4, 5, 4, 4, 5]
在这里我计算了一个月中的星期六(全天)。
但我想要星期六的 0.5(半天),所以我将它除以 1/2。
half_day = [float(x/1/2) for x in newdf]
以上代码的输出:
[2.0, 2.5, 2.0, 2.0, 2.5, 2.0, 2.0, 2.5]
在这里我计算了一个月中的星期六(半天)。
现在我想在 Working_Days 中添加半天输出。因为我们有这样的工作日
Monday(Full Day),
Tuesday(Full Day),
Wednesday(Full Day),
Thursday(Full Day),
Friday(Full Day,
Saturday(Half Day))
我无法在
workdays.networkdays
中计算它,因为它包括周末(星期六,星期日)
那么如何在 final_df["Working_Days"] 中添加半天?
提前致谢!