我正在使用以下数据集:
和一个列表holidays = ['2016-01-01','2016-01-18'....'2017-11-23','2017-12-25']
目标:创建一列,指示特定日期是否在列表中任何假日的+-7天内
模拟输出:
我正在处理大量的日期记录,因此试图找到一种快速(最优化)的方法来实现这一点
我当前的解决方案:
我想快速实现这一点的一种方法是创建另一个列表,其中只包含我所需持续时间(比如2年)的唯一日期。通过这种方式,我可以使用2 for loops实现一个简单的解决方案,以检查某个日期是否在假期的+-7天内,并且不会计算太多,因为两个列表都相对较小(730个唯一日期和假期列表中的约20个日期)。 一旦我有了我想要的日期列表,我所要做的就是在我的“日期”列上运行一次检查,看看该日期是否是我创建的新列表的一部分。但是,有什么建议可以更快地做到这一点吗
试试这个:
示例:
代码:
结果:
制作一个
function
以+- 7
天计算日期,并检查计算日期是否在节假日,因此返回True
elseFalse
并将该函数应用于Data frame
输出:
将假日转换为数据帧,然后^{} 允许6天:
完整的工作示例:
new_df
:或者将Holdiays转换为np datetime数组,然后对“Date”列进行^{} 减法,将} 匹配项:
abs
与7天进行比较,查看是否存在^{完整的工作示例:
df
:相关问题 更多 >
编程相关推荐