我有这样的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
值,我想对所有数据帧应用相同的方法。
答案 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}}