我有一个看起来像这样的数据框:
A B
a T
b T
c F
d F
e F
f T
g T
我想保留每个部分的最后一个事件
应该变成这样:
A B
b T
e F
g T
答案 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
索引。