1 回答

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超13個(gè)贊
如果您要查找任何 >= 800 的值,并且在前 3 分鐘內(nèi)未記錄任何 < 800 的值,則此方法將起作用:
import pandas as pd
from pandas.tseries.offsets import Minute
data = pd.read_csv("example_all.csv", parse_dates=[0])
data = data.sort_values('_time')
def all_over_800(values):
return values.map(lambda x: x >= 800).all()
data['over_threshold'] = data[['_time', 'duration']].rolling(
Minute(3), on='_time').apply(lambda win: all_over_800(win))['duration']
請(qǐng)注意,center窗口選項(xiàng)未針對(duì)日期時(shí)間偏移窗口實(shí)現(xiàn),因此檢查前 3 分鐘(或根據(jù)順序后的 3 分鐘)是此方法的唯一選項(xiàng)。如果您不介意對(duì)數(shù)據(jù)幀進(jìn)行兩次排序,則可以結(jié)合前面和后面的結(jié)果來檢查樣本的兩側(cè)。
添加回答
舉報(bào)