gpt4 book ai didi

python - 计算工作日,包括 python 中两个日期列的自定义假期

转载 作者:行者123 更新时间:2023-12-01 03:00:26 27 4
gpt4 key购买 nike

我试图通过添加新的 date_difference 列来获取两个日期列之间的工作日。

我尝试了什么?

bd = workday(ll.date_done,ll.order_date, cal)
bd = networkdays(ll.date_done,ll.order_date, cal)
km = np.busday_count(dd.date(), od.date(), holidays = cal)

我收到一个错误。

'Series' object has no attribute 'days'

我正在尝试做什么。

# Table Name: ll
order_date date_done
2017-04-09 2017-04-16
2017-04-09 2017-04-18
2017-04-10 2017-04-20

我的期望:

order_date  date_done      Date_Difference
2017-04-09 2017-04-16 4
2017-04-09 2017-04-18 7
2017-04-10 2017-04-20 6

我在做什么计算?

我有假期列表,不包括我试图获取两个日期的工作日差异。上面的 date_difference 计算只是虚拟数字。

最佳答案

您可以使用numpy.bus_daycount()如果您将正确的类型传递给它:

代码:

df['date_diff'] = np.busday_count(
df.order_date.values.astype('datetime64[D]'),
df.date_done.values.astype('datetime64[D]'))

测试代码:

import pandas as pd
import numpy as np

from io import StringIO
df = pd.read_fwf(StringIO(u"""
order_date date_done
2017-04-09 2017-04-16
2017-04-09 2017-04-18
2017-04-10 2017-04-20"""), header=1)
df.order_date = pd.to_datetime(df.order_date, infer_datetime_format=True)
df.date_done = pd.to_datetime(df.date_done, infer_datetime_format=True)

df['date_diff'] = np.busday_count(
df.order_date.values.astype('datetime64[D]'),
df.date_done.values.astype('datetime64[D]'))

print(df)

结果:

  order_date  date_done  date_diff
0 2017-04-09 2017-04-16 5
1 2017-04-09 2017-04-18 6
2 2017-04-10 2017-04-20 8

关于python - 计算工作日,包括 python 中两个日期列的自定义假期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43899185/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com