Python 检查日期是否为假日[类型错误:需要整数(获取类型假日)]
我用熊猫从csv读取数据。读取数据后,我将日期列从字符串转换为日期格式,并删除时间。我想创建一个包含值0和1的新列,显示一天是假日(1)还是非假日(0)。为此,我将时间字符串转换为datetime,并创建了一个假日日历:Python 检查日期是否为假日[类型错误:需要整数(获取类型假日)],python,pandas,time,Python,Pandas,Time,我用熊猫从csv读取数据。读取数据后,我将日期列从字符串转换为日期格式,并删除时间。我想创建一个包含值0和1的新列,显示一天是假日(1)还是非假日(0)。为此,我将时间字符串转换为datetime,并创建了一个假日日历: import pandas as pd from pandas.tseries.offsets import Easter, Day from pandas.tseries.holiday import EasterMonday, GoodFriday, Holiday, Ab
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)
我看到过其他帖子使用相同的代码工作,我不知道这个错误的原因是什么
有什么想法吗?谢谢 您需要修正这些规则:
rules = [Holiday('New Years Day', month=1, day=1),
GoodFriday,
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)]