如何使用python计算工作日数

如何使用python计算工作日数,python,pandas,days,python-holidays,Python,Pandas,Days,Python Holidays,我有一个数据帧(df): 我想添加一列,给出每行的工作日数,不包括节假日和周末(针对特定国家,例如:法国或美国) 因此,输出将是: year month ETP work_day 0 2021 1 49.21 20 1 2021 2 34.20 20 2 2021 3 31.27 21 3 2021 4 29.18 19 4 2021 5 33.25 20 5

我有一个数据帧(df):

我想添加一列,给出每行的工作日数,不包括节假日和周末(针对特定国家,例如:法国或美国)

因此,输出将是:

    year  month ETP     work_day
0   2021    1   49.21      20
1   2021    2   34.20      20
2   2021    3   31.27      21
3   2021    4   29.18      19
4   2021    5   33.25      20
5   2021    6   24.70      19
代码:

import numpy as np
import pandas as pd
days = np.busday_count( '2021-01', '2021-06' ) 
df.insert(3, "work_day", [days]) 
我得到了这个错误:

ValueError: Length of values does not match length of index
有什么建议吗


感谢您的帮助

假设您是输入工作日的人,我想您可以这样做:

data = {'year': [2020, 2020, 2021, 2023, 2022], 
        'month': [1, 2, 3, 4, 6]} 
 
df = pd.DataFrame(data)
 
df.insert(2, "work_day", [20,20,23,21,22]) 
其中,
2
是新列的位置,而不仅仅是在末尾,
work\u day
是名称,列表中有每行的值

编辑:使用NumPy

import numpy as np
import pandas as pd

days = np.busday_count( '2021-02', '2021-03' )
data = {'year': [2021], 
        'month': ['february']} 
 
df = pd.DataFrame(data)
 
df.insert(2, "work_day", [days]) 
使用
busday\u count
可以指定要查看工作日的开始日期和结束日期。 结果是:

   year     month  work_day
0  2021  february  20

@T0ny1234不,我想有一个代码,可以让我自动计算工作日,我有一个从2020年到2030年的时间表,所以我不能手动执行。您可以使用NumPy,我将编辑答案中的代码供您查看。@T0ny1234很抱歉我的回复太晚,是的,这是我想要的,但是当我在我的示例中尝试数据帧时,它实际上不起作用!为什么不呢?你得到了什么错误?我在问题中添加了错误和代码
   year     month  work_day
0  2021  february  20