大熊猫获取所有连续的行,直到列值更改

时间:2020-09-09 19:05:24

标签: pandas

让我们说我有一个如下数据框:

   pid    name
0  5         A
1  5         X
2  5         C
3  5         Q
4  3         H
5  3         E
6  4         U
7  5         J

我不知道第一行中pid的值是什么,但是我想从头开始获取所有行,直到pid的值改变为止。因此,在这种情况下,应打印pid = 5的所有连续行。请注意,结果中不应包含pid = 5的最后一行。

因此结果将是:

   pid    name
0  5         A
1  5         X
2  5         C
3  5         Q

Name只是一栏,没有任何特殊考虑。

1 个答案:

答案 0 :(得分:1)

尝试一下

df_final =  df[df.pid.diff().ne(0).cumsum().eq(1)]

Out[909]:
   pid name
0    5    A
1    5    X
2    5    C
3    5    Q