Пример данных:
df = pd.DataFrame({'Timestamp': ['00-00-10', '00-00-20', '00-00-30', '00-00-40',
'00-00-50', '00-01-00', '00-01-10', '00-01-20',
'00-01-30', '00-01-40', '00-01-50', '00-02-00',
'00-02-10'],
'Value': range(0, 13),
'Result': [1.0, None, 0.0, None, 1.0, None, None, 0.0, None, None, None, 1.0, None]})
Код:
#where NaN after 1
df1 = df.shift(-1)[df.Result == 1]
#where 1
df2 = df[df.Result==1]
#index where 0 with max Timestamp
ind = df[df.Timestamp == min(df[df.Result == 0].Timestamp)[df.Result==0].index[0]
#select by ind and one next
df3 = df.loc[[ind, ind+1]]
Выход:
Result Timestamp Value
0 NaN 00-00-20 1.0
4 NaN 00-01-00 5.0
11 NaN 00-02-10 12.0
0 1.0 00-00-10 0.0
4 1.0 00-00-50 4.0
11 1.0 00-02-00 11.0
2 0.0 00-00-30 2.0
3 NaN 00-00-40 3.0
Затем вы можете отсортировать по индексу, если хотите.Я надеюсь, что это помогает.Но я не уверен, что понимаю вас о последнем выборе.И я не понимаю, почему у вас есть сырье с "00-01-10" в результате.