Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python每月的最后一个工作日(使用CustomBusinessDay)?_Python_Pandas_Datetime - Fatal编程技术网

python每月的最后一个工作日(使用CustomBusinessDay)?

python每月的最后一个工作日(使用CustomBusinessDay)?,python,pandas,datetime,Python,Pandas,Datetime,我喜欢计算特定日期之前或之后的最后一个工作日(包括假期,而不仅仅是周末) 这是耶稣受难节,那个节日(如图所示)。。。应在2018-03-29前1天显示 问题出在哪里?我能够重现问题,经过一些测试,我将问题缩小到使用DatetimeIndex作为CustomBusinessDay中日历参数的输入 您可以跳过该步骤,直接使用日历实例: import datetime as dt import pandas as pd from pandas.tseries.holiday import Abstra

我喜欢计算特定日期之前或之后的最后一个工作日(包括假期,而不仅仅是周末)

这是耶稣受难节,那个节日(如图所示)。。。应在2018-03-29前1天显示


问题出在哪里?

我能够重现问题,经过一些测试,我将问题缩小到使用
DatetimeIndex
作为
CustomBusinessDay
中日历参数的输入

您可以跳过该步骤,直接使用日历实例:

import datetime as dt
import pandas as pd
from pandas.tseries.holiday import AbstractHolidayCalendar, Holiday, nearest_workday, \
    USMartinLutherKingJr, USPresidentsDay, GoodFriday, USMemorialDay, \
    USLaborDay, USThanksgivingDay
from pandas.tseries.offsets import CustomBusinessDay, BDay

class USTradingCalendar(AbstractHolidayCalendar):
    rules = [
        Holiday('NewYearsDay', month=1, day=1, observance=nearest_workday),
        USMartinLutherKingJr,
        USPresidentsDay,
        GoodFriday,
        USMemorialDay,
        Holiday('USIndependenceDay', month=7, day=4, observance=nearest_workday),
        USLaborDay,
        USThanksgivingDay,
        Holiday('Christmas', month=12, day=25, observance=nearest_workday)
    ]

bday_us = CustomBusinessDay(calendar=USTradingCalendar())

d = dt.datetime(2018, 3, 31)

c = d - bday_us

print(c)
输出:

2018-03-29 00:00:00
2018-03-29 00:00:00