[英]How to set Holidays with Pandas in a timezone-aware way
我有一個按日期時間和每小時頻率索引的熊貓數據框(可識別時區):
<class 'pandas.tseries.index.DatetimeIndex'>
[2014-01-01 00:00:00+01:00, ..., 2014-06-30 23:00:00+02:00]
Length: 4933, Freq: None, Timezone: Europe/Rome
我想將我設置的所有假期的工作日設置為6(= Sunday)。 如何以時區感知方式進行操作?
這可能很幼稚,但可以
from pandas.tseries.holiday import Holiday, AbstractHolidayCalendar
from datetime import datetime
class ItalianHolidaysCalendar(AbstractHolidayCalendar):
rules = [Holiday('Pasquetta', month=4, day=21),
Holiday('Liberation day', month=4, day=25),
Holiday('Workers day', month=5, day=1),
Holiday('Republic day', month=6, day=2)
]
cal = ItalianHolidaysCalendar()
holidays_df = pd.DataFrame({})
dd = pd.date_range(datetime(2014,1,1,0), periods=24, freq='H', tz='Europe/Rome')
holidays = cal.holidays(sliceSum.datetime.min().date(), sliceSum.datetime.max().date())
for day in holidays:
dd = dd.append(pd.date_range(day, day + pd.DateOffset(hours=23), freq='H'))
sliceSum['holiday'] = False
sliceSum.loc[sliceSum.index.isin(dd),['holiday']] = True
sliceSum[sliceSum.holiday].head(50)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.