标签: python-holidays

将工作日添加到带有日期的 pandas 数据框中并跳过假期 python

我有一个包含日期的数据框,如下表所示。第一个块是它应该的样子,第二个块是我在添加 BDays 时得到的。这是完成后的样子的示例。我想使用第一列并向日期添加 5 个工作日,但如果 5 个生日与假期重叠(例如 21 年 2 月 15 日),那么我需要再添加一天。使用 添加 5Bday 相当简单 pandas.tseries.offsets import BDay,但我在使用数据框时不能跳过假期。

我尝试过使用pandas.tseries.holiday import USFederalHolidayCalendar、workdays 和 workalendar 模块,但无法弄清楚。任何人都知道我能做什么。

正确的例子

日期 退出日期+5
2021/02/09 2021/02/17
2021/02/10 2021/02/18

错误的例子

日期 退出日期+5
2021/02/09 2021/02/16
2021/02/10 2021/02/17

以下是我尝试过的一些代码示例:

import pandas as pd
from workdays import workday
...
df['DATE'] = workday(df['EXIT DATE +5'], days=5, holidays=holidays)
Run Code Online (Sandbox Code Playgroud)

下一个例子:

import pandas as pd
from pandas.tseries.holiday import USFederalHolidayCalendar
bday_us = pd.offsets.CustomBusinessDay(calendar=USFederalHolidayCalendar())
dt = df['DATE']
df['EXIT DATE +5'] = dt + …
Run Code Online (Sandbox Code Playgroud)

dataframe pandas python-holidays

7
推荐指数
1
解决办法
8589
查看次数

Python:循环假期国家列表

我对 Python 还很陌生。我正在利用 Python 的假期套餐,该套餐按国家/地区划分公共假期。为了获得一个国家/地区的假期,您可以运行以下命令:

sorted(holidays.US(years=np.arange(2014,2030,1)).items()

这将给出日期和假期。现在,我想要针对一些国家的数据。如何循环遍历国家/地区列表,而不是每次都替换上述代码中的国家/地区名称?这里考虑的国家是:

[FRA, Norway, Finland, US, Germany, UnitedKingdom, Sweden]

我尝试了这样的 for 循环:

countrylistLoop = ['FRA', 'Norway', 'Finland', 'US', 'Germany', 'UnitedKingdom', 'Sweden']

for i in countrylistLoop:
     print(sorted(holidays.i(years=np.arange(2014,2030,1)).items()),columns=['Date','Holiday'])
Run Code Online (Sandbox Code Playgroud)

这会抛出一个属性错误:

AttributeError: module 'holidays' has no attribute 'i'.
Run Code Online (Sandbox Code Playgroud)

这是有道理的,但我不知道如何继续!

理想情况下,我想循环并将结果存储在数据框中。非常感谢任何帮助!谢谢你!

python python-holidays

2
推荐指数
1
解决办法
2238
查看次数

标签 统计

python-holidays ×2

dataframe ×1

pandas ×1

python ×1