繁体   English   中英

在Python中切割数据框中的第n行

[英]Cutting every nth row in dataframe in Python

我有一个像这样的列的数据框:

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时,我都希望将其削减。

输出为:

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到较大的z_n的每次更改的索引都不是“常规的”。

是否有捷径可寻?

我们可以使用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.diff(-1) < 0)]

输出:

   x   y     z
0  1  10  20.0
1  2  10  18.0
2  3  11  16.5
4  5  12  23.0
5  6  11  21.0
7  8  10  26.0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM