Pandas-删除除共享相同列值的第一行以外的所有连续行

Pandas-删除除共享相同列值的第一行以外的所有连续行,pandas,dataframe,Pandas,Dataframe,我有一个如下所示的数据框: A B C D - - - - h e l 0 t h i 0 i s m 0 q u e 1 s t i 1 A B C D - - - - h e l 0 q u e 1 我想连续删除D中具有相同值的所有行,但保留第一行。结果如下: A B C D - - - - h e l 0 t h i 0 i s m 0 q u e 1 s t i 1 A B C D - - - - h e l 0 q u e 1 到目前为止,我已经使用以下代码完成了: df[

我有一个如下所示的数据框:

A B C D
- - - -
h e l 0
t h i 0
i s m 0
q u e 1
s t i 1
A B C D
- - - - 
h e l 0
q u e 1
我想连续删除
D
中具有相同值的所有行,但保留第一行。结果如下:

A B C D
- - - -
h e l 0
t h i 0
i s m 0
q u e 1
s t i 1
A B C D
- - - - 
h e l 0
q u e 1
到目前为止,我已经使用以下代码完成了:

df[list(map(lambda x: (x == 0) or (df['D'][x] != df['D'][x-1]), range(len(D))))]
我想知道是否有更好的方法来做到这一点?

使用-

df.loc[df['D'].shift(1) != df['D']]
输出

    A   B   C   D
0   h   e   l   0
3   q   u   e   1

@耶斯雷尔这看起来和你标记的那个不同。OP希望连续的副本被复制removed@VivekKalyanarangan-添加了新的重复…我担心如果
0
发生超过2次,这将无法工作。对吗?@Lokesh没抓住你。我在OP的例子中尝试了它,其中包含3个连续的重复项,它对meThanks来说是一个很好的答案。工作没有问题!你真厉害