Я предлагаю следующее: сначала я создаю верх для строки непосредственно перед Timediff2 == 0.1
, затем фильтрую:
import pandas as pd
import numpy as np
df = pd.DataFrame({"Start": [np.NaN, 0.0, 1.0,0.0, 0.0],
"Timediff2": [np.NaN, 0.1, 3417, 0.1, 793]})
df["top"] = (df["Timediff2"] == 0.1).shift(-1)
df = df.loc[(df["Start"] == 1) | (df["top"] == False), :]
df = df.drop(columns="top")
Результат:
Start Timediff2
1 0.0 0.1
2 1.0 3417.0
3 0.0 0.1