Я читаю данные из CSV с pandas. После прочтения данных я преобразую столбец даты из строки в формат даты и удаляю время. Я хочу создать новый столбец, содержащий значения 0 и 1, который показывает, является ли день выходным (1) или нет (0). Для этого я преобразовал строки времени в datetime и создал календарь праздников:
import pandas as pd
from pandas.tseries.offsets import Easter, Day
from pandas.tseries.holiday import EasterMonday, GoodFriday, Holiday, AbstractHolidayCalendar
# convert strings to date
data['date'] = pd.to_datetime(data['date'], dayfirst=True, errors='coerce')
# remove time
data['date'] = data['date'].dt.date
# german holidays
class GermanHolidays(AbstractHolidayCalendar):
rules = [Holiday('New Years Day', month=1, day=1),
Holiday('Good Fridy', GoodFriday),
Holiday('Easter Monday', EasterMonday),
Holiday('Ascension of Christ', month=1, day=1, offset=[Easter(), Day(39)]),
Holiday('Internation Womens Day', month=3, day=8),
Holiday('First of May', month=5, day=1),
Holiday('Whit Monday', month=1, day=1, offset=[Easter(), Day(50)]),
Holiday('Liberation Day', month=5, day=8),
Holiday('German Unity Day', month=10,day=3),
Holiday('First Christmas Day', month=12, day=25),
Holiday('Second Christmas Day', month=12, day=26)]
cal = GermanHolidays()
holidays = cal.holidays(start = data['date'].min(), end = data['date'].max())
Проблема возникает в последней строке (праздничные дни = ...), и я получаю следующую ошибку:
TypeError: an integer is required (got type Holiday)
Я видел другие посты с тем же кодом, которые работают, и я не могу понять, в чем причина этой ошибки.
Есть идеи? Спасибо!