保留不等于特定值的最长连续发生

时间:2016-06-26 01:58:55

标签: python pandas

我有这样的df:

Value
0
1
3
-999
4
5
6
2
7
8
9
-999
3
2
-999
1

我希望保留数据框中非-999

的最连续值

这个例子会给我这个:

Value
4
5
6
2
7
8
9

我有多个数据帧(最初是csv文件),它们在不同位置具有-999值,我想对所有数据帧应用相同的方法。

1 个答案:

答案 0 :(得分:1)

您可以对条件系列执行cumsum(),该条件系列为从-999到另一个df['groupId'] = (df['Value'] == -999).cumsum() df.Value[df.groupId == df.groupId.value_counts().idxmax()][1:] # 4 4 # 5 5 # 6 6 # 7 2 # 8 7 # 9 8 # 10 9 # Name: Value, dtype: int64 的每个连续序列提供唯一的groupId。然后找到groupId和filter的最大长度,它应该给出所需的输出:

{{1}}