熊猫-删除所有连续的行,但第一个共享相同列值的行除外

时间:2018-11-19 13:00:52

标签: 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

我要连续删除D中具有相同值的所有行,但保留第一行。结果如下:

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))))]

我想知道是否有更好的方法?

1 个答案:

答案 0 :(得分:2)

使用-

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

输出

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