Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pandas 获取所有连续行,直到列值更改_Pandas - Fatal编程技术网

Pandas 获取所有连续行,直到列值更改

Pandas 获取所有连续行,直到列值更改,pandas,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
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
只是一列,没有任何具体考虑。

试试这个

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