我有一个数据框
x y
a 1
b 1
c 1
d 0
e 0
f 0
g 1
h 1
i 0
j 0
我想删除带有 0 的行,除了 1 之后第一次新出现的 0,所以结果数据帧应该是
x y
a 1
b 1
c 1
d 0
g 1
h 1
i 0
是否可以在不创建组或逐行迭代的情况下完成它以使其更快,因为我有一个大数据框。
最佳答案
让我们尝试使用 cumsum
创建连续值组的 diff
,然后尝试 duplicated
out = df[~df.y.diff().ne(0).cumsum().duplicated() | df.y].copy()
Out[352]:
x y
0 a 1
1 b 1
2 c 1
3 d 0
6 g 1
7 h 1
8 i 0
关于python - Pandas :删除除第一个新出现的值之外的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66681835/