python 时间滞后假期

python time lags holidays

在pandas中,我有两个数据框。一个包含来自 http://www.timeanddate.com/holidays/austria 的特定国家/地区的假期,另一个包含日期列。我想计算一下放假后的#days

def compute_date_diff(x, y):
    difference = y - x
    differenceAsNumber = (difference/ np.timedelta64(1, 'D'))
    return differenceAsNumber.astype(int)

for index, row in holidays.iterrows():
    secondDF[row['name']+ '_daysAfter'] = secondDF.dateColumn.apply(compute_date_diff, args=(row.day,))

然而,这

我如何才能修复缺陷提高性能?有平行申请吗?或者 http://pandas.pydata.org/pandas-docs/stable/timeseries.html#holidays-holiday-calendars 由于我是 pandas 的新手,我不确定如何在应用中迭代时获取日期对象的当前 date/index。据我所知,我不能反过来循环,例如在 secondDF 中的所有行中,因为我不可能在通过 apply

迭代时生成特征列

为此,使用公共列连接两个数据框,然后尝试此代码

import pandas
import numpy as np
df = pandas.DataFrame(columns=['to','fr','ans'])
df.to = [pandas.Timestamp('2014-01-24'), pandas.Timestamp('2014-01-27'), pandas.Timestamp('2014-01-23')]
df.fr = [pandas.Timestamp('2014-01-26'), pandas.Timestamp('2014-01-27'), pandas.Timestamp('2014-01-24')]
df['ans']=(df.fr-df.to) /np.timedelta64(1, 'D')
print df

输出

          to         fr  ans
0 2014-01-24 2014-01-26  2.0
1 2014-01-27 2014-01-27  0.0
2 2014-01-23 2014-01-24  1.0

我选择了完全不同的东西: 现在,只会计算距离最近的假期之前的天数。

我的函数:

def get_nearest_holiday(holidays, pivot):
   return min(holidays, key=lanbda x: abs(x- pivot)
   # this needs to be converted to an int, but at least the nearest holiday is found efficiently

在每行的基础上被称为 lambda 表达式