因此,根据this answer,最好不要迭代数据帧中的行。但是,如果不使用for循环,我不知道如何解决我的问题。你知道吗
我需要检测特定列中的任何连续重复(三次或更多次)。例如,如果值0出现在特定ID的三个连续行中,我想知道ID
ID Value
1 0
1 0.5
1 0 <--- I need this ID, because there are three consecutive 0s.
1 0
1 0
1 0.2
2 0.1
2 0 <--- Not this one! It only appears twice in a row for this ID.
2 0
3 0
3 0
也许值得一提的是,这是一个时间序列,所以顺序是至关重要的。你知道吗
第一个断言是对id进行排序。你知道吗
步骤:
1-排序数据帧。你知道吗
2-将索引列放入新列以测试连续性。你知道吗
3-基于元组(id,Value)将数据帧拆分为多个数据帧。你知道吗
4-在所有数据帧上循环(这不是资源消耗)。你知道吗
5-匹配条件并获取ID
输出:
你可以这样做:
这不是一个小问题,需要双groupby,类似于@anky91的解决方案:
提供:
你可以提取
相关问题 更多 >
编程相关推荐