Pandas 对滑动时间应用算法 window
Pandas apply algorithm on sliding time window
我有一个带有时间戳列的数据框,我必须根据算法的结果创建一个新列。该算法必须应用于当前行,以及时间戳位于固定间隔内的所有前后行。因此,例如,如果时间间隔为 1 小时,我需要选择“当前”行之前最多 1 小时或之后 1 小时的所有行,应用算法并将结果保存在新列中,然后对所有行执行此操作行
df['new_column'] = algorithm(df[df['timestamp'] inside time window])
我不知道的是如何获取时间 window
内的数据帧部分
我猜想还有更有效的方法。但是,我还没有找到。
def algorithm(timestamp, df):
df = df[(df['timestamp'] >= timestamp + relativedelta(hours=-1))]
df = df[(df['timestamp'] <= timestamp + relativedelta(hours=1))]
#rest of algorithm
return return_value
如果你用下面的代码调用这个算法,相信你会得到你预期的结果。
df['new_column'] = df['timestamp'].apply(algorithm, df=df)
我有一个带有时间戳列的数据框,我必须根据算法的结果创建一个新列。该算法必须应用于当前行,以及时间戳位于固定间隔内的所有前后行。因此,例如,如果时间间隔为 1 小时,我需要选择“当前”行之前最多 1 小时或之后 1 小时的所有行,应用算法并将结果保存在新列中,然后对所有行执行此操作行
df['new_column'] = algorithm(df[df['timestamp'] inside time window])
我不知道的是如何获取时间 window
我猜想还有更有效的方法。但是,我还没有找到。
def algorithm(timestamp, df):
df = df[(df['timestamp'] >= timestamp + relativedelta(hours=-1))]
df = df[(df['timestamp'] <= timestamp + relativedelta(hours=1))]
#rest of algorithm
return return_value
如果你用下面的代码调用这个算法,相信你会得到你预期的结果。
df['new_column'] = df['timestamp'].apply(algorithm, df=df)