Pandas:如何在数据框列中查找特定模式?

Pandas:如何在数据框列中查找特定模式?,第1张

Pandas:如何在数据框列中查找特定模式

这是一个解决方案:

使用滚动检查是否在任何列中找到了模式。这将为您提供与模式匹配的组的最后一个索引

matched = df.rolling(len(pattern)).apply(lambda x: all(np.equal(x, pattern)))matched = matched.sum(axis = 1).astype(bool)   #Sum to perform boolean ORmatchedOut[129]: Dates2017-07-07    False2017-07-08    False2017-07-09    False2017-07-10    False2017-07-11    False2017-07-12     True2017-07-13    False2017-07-14    False2017-07-15    False2017-07-16    Falsedtype: bool

对于每个匹配项,添加完整模式的索引:

idx_matched = np.where(matched)[0]subset = [range(match-len(pattern)+1, match+1) for match in idx_matched]

获取所有模式:

result = pd.concat([df.iloc[subs,:] for subs in subset], axis = 0)resultOut[128]:  ColA  ColBDates      2017-07-10   100    912017-07-11    90   1072017-07-12   105    99


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5644858.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存