【发布时间】:2020-07-04 14:26:04
【问题描述】:
我正在使用按时间顺序排列的变量创建数据集,更具体地说,是假期,在使用 pandas 进行了一些测试之后,我现在正在使用 FBProphet。
当我考虑一个地区(伊比利亚半岛)时,它将涉及两个国家的假期:葡萄牙和西班牙。这是当前 Prophet 的行为:
>>> m.add_country_holidays('PT')
>>> m.add_country_holidays('ES')
WARNING:fbprophet:Changing country holidays from PT to ES
因为我的目标是简单地知道是否是假期:
• 即使认为同一个假期可能会在每个国家/地区的不同日期结束,对于我正在做的工作,知道假期之间的区别并不重要。
• 如果庆祝活动发生在同一天,例如“Ano Novo”和“Año Nuevo”,我只关心在特定的日子是假期。
尽管知道我们在哪些国家(和地区)放假会很有帮助,因为人口不同,这是影响我预测的一个因素,但只知道这是一个假期已经是一个对我的预测有很好的改进。
这是我获得每个国家/地区假期的方式:
from fbprophet.make_holidays import make_holidays_df
year_list = [2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020]
PTBusinessCalendar = make_holidays_df(year_list=year_list, country='PT')
ESBusinessCalendar = make_holidays_df(year_list=year_list, country='ES')
为了得到伊比利亚假期日历,我可以concat他们,像这样:
iberian = [PTBusinessCalendar, ESBusinessCalendar]
iberian_2 = pd.concat(iberian).sort_values('ds').reset_index(drop=True)
这会导致以下输出:
从 DataFrame 中可以看出,例如,索引 0 和 1 都具有相同的日期 (ds) 并代表相同的假期。
我应该怎么做才能加入具有相同ds 的行并在第一行写上holiday 名称,用逗号分隔?
【问题讨论】:
-
你见过this吗?
标签: python pandas dataframe datetime facebook-prophet