Pandas的时序分析
3 pd.tseries 中的节假日功能3.1 自定义节假日3.2 自定义工作日3.3 自动计算 n个工作日后的日期转载请注明出处 😃!
手动反爬:Pandas时序分析(pd.tseries 中的节假日功能) /Lyun911/article/details/112716120
注:以下使用 Jupyter Notebook 演示
3 pd.tseries 中的节假日功能
这个东西用的少,又比较复杂,涉及的功能包括:
pandas.tseries.offsets.CustomBusinessDay
pandas.tseries.holiday.AbstractHolidayCalendar
pandas.tseries.holiday.nearest_workday
pandas.tseries.holiday.Holiday
导入数据,生成时间序列 DEMO:
import pandas as pdfrom pandas.tseries.holiday import AbstractHolidayCalendar, nearest_workday, Holidayfrom pandas.tseries.offsets import CustomBusinessDaydf = pd.read_csv("aapl_no_dates.csv")rng = pd.date_range(start = '5/1/',end = '5/21/',freq = 'B')
3.1 自定义节假日
class myCalendar(AbstractHolidayCalendar):# 类的继承(继承了 AbstractHolidayCalendar)rules = [Holiday('五一', month = 5, day = 1),Holiday('mybirth', month = 5, day = 15)]wuyi = CustomBusinessDay(calendar = myCalendar())# 结果会自动跳过上面定义的假期pd.date_range(start = '5/1/',end = '5/21/',freq = wuyi)
注:结果中 freq=‘C’ 的意思是’自定义’
3.2 自定义工作日
egypt_weekdays = "Sun Mon Tue Wed Thu"b2 = CustomBusinessDay(weekmask = egypt_weekdays# weekmask工作日的时间 = 埃及工作时间)pd.date_range(start = '5/1/',end = '5/21/',freq = b2# 此时用 b2)
3.3 自动计算 n个工作日后的日期
from datetime import datetimedt = datetime(, 7, 10)dtdt + 15 * b2# 乘以 b2(时间序列)以后,会自动把双休日去掉# 比如:招投标的时候,可以自动加上 15个工作日的公示期