当列 x 值在超过五个连续行中保持不变时,我想提取行。
x x2
0 5 5
1 4 5
2 10 6
3 10 5
4 10 6
5 10 78
6 10 89
7 10 78
8 10 98
9 10 8
10 10 56
11 60 45
12 10 65
Desired_output:
x x2
0 10 6
1 10 5
2 10 6
3 10 78
4 10 89
5 10 78
6 10 98
7 10 8
8 10 56
最佳答案
您可以使用.shift
+ .cumsum
识别列 x
值保持不变的连续行 block ,然后对这些 block 上的数据帧进行分组,并使用 count
进行转换
识别 x
中具有超过 5
个连续相同值的组:
b = df['x'].ne(df['x'].shift()).cumsum()
df_out = df[df['x'].groupby(b).transform('count').gt(5)]
详细信息:
>>> b
0 1
1 2
2 3
3 3
4 3
5 3
6 3
7 3
8 3
9 3
10 3
11 4
12 5
Name: x, dtype: int64
>>> df_out
x x2
2 10 6
3 10 5
4 10 6
5 10 78
6 10 89
7 10 78
8 10 98
9 10 8
10 10 56
关于python-3.x - 当特定列值连续一定数量的行时如何获取行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65976993/