答案 0 :(得分:2)
过滤器连续组.diff().abs().cumsum().bfill()
不遵循特定的(x['B'].eq(1).any() and x['A'].eq(0.04).any()
agg 第一个和最后一个
随后将连续性列分组以使用agg fun提取第一行和最后一行
df['temp'] = df.B.diff().abs().cumsum().bfill()
df.groupby('temp').filter(lambda x: (x['B'].eq(1).any() and x['A'].eq(0.04).any()))\
.groupby('temp').agg({'A':['first','last']})
出局:
A
first last
temp
3.0 344.0 39.9