У меня есть данные df
:
Timestamp = pd.date_range('2020-02-06 08:23:04', periods=1000, freq='s')
df = pd.DataFrame({'Timestamp': Timestamp,
'Data': 30+15*np.cos(np.linspace(0,10,Timestamp.size))})
df['timediff'] = (df['Timestamp'].shift(-1) - df['Timestamp']).dt.total_seconds()
df['datadiff'] = df['Data'].shift(-1) - df['Data']
df['gradient'] = df['datadiff'] / df['timediff']
Я хочу найти временные сегменты с gradient
> 0,13. Таким образом, start
является первой точкой данных в этом диапазоне, а end
является последней точкой данных в диапазоне, сделайте это для всего df
.
Ожидаемый результат:
Start Start_Data End End_Data
2020-02-06 08:30:50 29.284407 2020-02-06 08:30:58 30.485252
...