2015-09-16 3 views
0

J'ai un ensemble de données que je dois regrouper en fonction des jours de cours et des jours sans cours. La meilleure façon de le faire serait d'utiliser CustomBusinessDay et de spécifier des périodes de congé (non-conférence). (Une autre alternative serait d'utiliser bdate_range et de supprimer les dates de vacances de la liste, mais je n'ai pas eu beaucoup de chance de le faire non plus.)Comment spécifier différentes plages de dates pour les vacances CustomBusinessDays dans Pandas?

Cependant, quand je passe ma liste de vacances en CustomBusinessDay, je reçois ce qui suit erreur:

TypeError: dt must be datestring, datetime or datetime64

Il semble que je ne peux pas utiliser une liste de DatetimeIndex objets pour holidays. Y a-t-il une meilleure façon de faire cela? Mon code est le suivant:

import pandas as pd 
from pandas.tseries.offsets import CustomBusinessDay 
nolectures=[pd.date_range(start='2015-03-28',end='2015-04-12'), '2015-05-01', pd.date_range(start='2015-11-09',end='2015-12-31'),] 
calendar=CustomBusinessDay(holidays=nolectures) 

Répondre

0

nolectures est une liste de DatetimeIndexes et hétérogène cordes:

nolectures=[pd.date_range(start='2015-03-28',end='2015-04-12'), '2015-05-01', pd.date_range(start='2015-11-09',end='2015-12-31'),] 

Vous devez nolectures être un semblable à un tableau de dates:

import pandas as pd 
from pandas.tseries.offsets import CustomBusinessDay 

nolectures = pd.date_range(start='2015-03-28',end='2015-04-12').union_many(
    [['2015-05-01'], pd.date_range(start='2015-11-09',end='2015-12-31')]) 
calendar = CustomBusinessDay(holidays=nolectures) 
print(calendar.holidays)