У меня есть некоторые данные в pandas DataFrame, выглядящие так:
df =
A B
time
0.1 10.0 1
0.15 12.1 2
0.19 4.0 2
0.21 5.0 2
0.22 6.0 2
0.25 7.0 1
0.3 8.1 1
0.4 9.45 2
0.5 3.0 1
На основании следующего условия я ищу универсальное c решение для поиска первого и последнего индекса каждого subset.
cond = df.B == 2
До сих пор я пытался использовать концепцию группировки, но без ожидаемого результата.
df_1 = cond.reset_index()
df_2 = df_1.groupby(df_1['B']).agg(['first','last']).reset_index()
Это вывод, который я получил.
B time
first last
0 False 0.1 0.5
1 True 0.15 0.4
Это вывод, который мне нравится получать.
B time
first last
0 False 0.1 0.1
1 True 0.15 0.22
2 False 0.25 0.3
3 True 0.4 0.4
3 False 0.5 0.5
Как я могу выполнить sh более или менее обобщенный c подход?