Идея состоит в том, чтобы получить доступ к первому и последнему индексу вхождения, который соответствует условию в Пандах.
Следующий код может достичь указанной цели.Но мне просто интересно, есть ли более эффективный способ достижения того же результата
Из примера и кода ожидается получение второй и пятой строки в качестве конечного результата.
df = pd.DataFrame({'A':[1,2,3,4,5,10,2],
'B' :[1,2,3,4,5,110,2]})
IndexGreaterThan=df[df['A'].gt(2)].index.tolist()
Voltage_FirstAboveThrshold=df.at[IndexGreaterThan[0],'A']
Time_FirstAboveThrshold=df.at[IndexGreaterThan[0],'B']
Voltage_LastAboveThrshold=df.at[IndexGreaterThan[-1],'A']
Time_LastAboveThrshold=df.at[IndexGreaterThan[-1],'B']
Тогда
print(Voltage_FirstAboveThrshold,Time_FirstAboveThrshold)
print(Voltage_LastAboveThrshold,Time_LastAboveThrshold)
Вывод
3 3
10 110
Цените любые предложения