TimeStamp Value
2014-12-19 12:41:54 0
2014-12-19 13:10:44 138
2014-12-19 13:12:45 0
2014-12-19 21:03:09 4
2014-12-20 04:53:29 138
2014-12-20 12:43:54 6
2014-12-20 13:12:46 0
Desired Output
TimeStamp Value
2014-12-19 13:10:44 138
2014-12-19 13:12:45 0
2014-12-20 04:53:29 138
2014-12-20 13:12:46 0
Итак, я попытался заполнить шаблон как [138,0] и найти его в столбце, он работает, но пропускает некоторые значения, где 138 непосредственно не следует за 0. (Как показано в примере выше) Есть ли способ сделать это?
pattern = [138,0]
matched = pd.DataFrame(Data["Value"].rolling(len(pattern)).apply(lambda x: all(np.equal(x, pattern))))
matched = matched.sum(axis = 1).astype(bool)
idx_matched = np.where(matched)[0]
subset = [range(match-len(pattern)+1, match+1) for match in idx_matched]
result = pd.concat([Data.iloc[subs,:] for subs in subset], axis = 0)