作为示例,请考虑以下内容:
输入
a b c bool
1 243 0 true
1 253 1 false
1 267 0 true
1 245 0 true
1 234 0 false
1 255 0 true
1 275 0 true
1 295 0 true
我希望输出如下:
a b c bool
1 243 0 true
1 253 1 false
1 267 0 true
1 234 0 false
1 255 0 true
答案 0 :(得分:1)
为此使用一些布尔蒙版,并在一行中完成:
df.loc[(df['bool'] != df['bool'].shift(1))]
退出:
>>> df.loc[(df['bool'] != df['bool'].shift(1))]
a b c bool
0 1 243 0 True
1 1 253 1 False
2 1 267 0 True
4 1 234 0 False
5 1 255 0 True
答案 1 :(得分:1)
IIUC
df.groupby(df['bool'].ne(True).cumsum()).head(2)
Out[201]:
a b c bool
0 1 243 0 True
1 1 253 1 False
2 1 267 0 True
4 1 234 0 False
5 1 255 0 True