Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.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
在Python中每N行剪切一次数据帧_Python_Python 3.x_Pandas_Dataframe - Fatal编程技术网

在Python中每N行剪切一次数据帧

在Python中每N行剪切一次数据帧,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,我有一个dataframe,其中的列如下: x y z 1 10 20 2 10 18 3 11 16.5 4 11 12 5 12 23 6 11 21 7 10 19 8 10 26 . . 每次z_n+1大于z_n时,我都要切下这个z_n 产出将是: x y z 1 10 20 2 10 18 3 11 16.5 5 12 23 6 11 21 8 10 26 . . 它并不是每x多次出

我有一个dataframe,其中的列如下:

x   y   z
1   10  20
2   10  18
3   11  16.5
4   11  12
5   12  23
6   11  21
7   10  19
8   10  26
.
.
每次z_n+1大于z_n时,我都要切下这个z_n

产出将是:

x   y   z
1   10  20
2   10  18
3   11  16.5
5   12  23
6   11  21
8   10  26
.
.
它并不是每x多次出现——从较小到较大z_n的每次变化的指数不是“规则的”

有没有简单的方法可以做到这一点?

试试:

df[~(df.z.diff(-1) < 0)]

我们可以使用
shift
向后看一行,然后使用
~
反向查看:

df[~(df['z'].shift() < df['z'])]

   x   y     z
0  1  10  20.0
1  2  10  18.0
2  3  11  16.5
3  4  11  12.0
5  6  11  21.0
6  7  10  19.0
df[~(df['z'].shift()
df.drop(df.z.diff().le(0))
检查输出。我认为19号应该被淘汰。
df[~(df['z'].shift() < df['z'])]

   x   y     z
0  1  10  20.0
1  2  10  18.0
2  3  11  16.5
3  4  11  12.0
5  6  11  21.0
6  7  10  19.0