python pandas:删除每个单独部分中的重复行

时间:2019-05-01 17:43:23

标签: python python-3.x pandas pandas-groupby

我有一个看起来像这样的数据框:

A B
a T
b T
c F
d F
e F
f T
g T

我想保留每个部分的最后一个事件

应该变成这样:

A B
b T
e F    
g T

1 个答案:

答案 0 :(得分:7)

使用:

df[df.B.ne(df.B.shift(-1))]

   A  B
1  b  T
4  e  F
6  g  T

详细信息-使用df.shift()periods= -1会将列移到下面的示例的上方:

print(df.B.shift(-1)) 

0      T
1      F
2      F
3      F
4      T
5      T
6    NaN

使用上面的输出,我们与当前行进行比较:

df.B.ne(df.B.shift(-1))
0    False
1     True
2    False
3    False
4     True
5    False
6     True

现在我们有一个布尔输出,我们可以直接调用该数据输出,该数据帧将选择所有True索引。