查找数据集变得单调的时间戳

问题描述 投票:0回答:1

我有一个包含海拔列的数据框。开始时,GPS 信号波动的高度保持不变。当 GPS 接收器在爬山过程中移动时,海拔高度有时会发生变化。 当高度开始不断向上移动时,如何找到时间戳?简单的“大于”比较是行不通的,因为在热身过程中,海拔高度在开始时会略有跳跃。

时间行示例如下:

import pandas as pd
import numpy as np
 
df_GPS = pd.DataFrame([['2024-06-21 06:22:38', 605.968389],
                     ['2024-06-21 06:22:39', 606.009398],
                     ['2024-06-21 06:22:40', 605.630573],
                     ['2024-06-21 06:22:41', 605.476367 ],
                     ['2024-06-21 06:22:42', 605.322161],
                     ['2024-06-21 06:22:43', 605.268389],
                     ['2024-06-21 06:22:44', 605.559398],
                     ['2024-06-21 06:22:45', 606.630573],
                     ['2024-06-21 06:22:46', 607.476367 ],
                     ['2024-06-21 06:22:47', 609.322161],
                    ], columns=['time', 'Altitude'])

enter image description here

理想情况下我会得到以下结果: 时间 = 2024-06-21 06:22:43 因为从那里海拔单调上升。

我的代码仍然有问题

start_move = df_GPS.loc[df_GPS['Altitude'] == df_GPS["Altitude"].is_monotonic_increasing, 'time'] 
print(start_move)    

我的拼写错误在哪里?

python dataframe datetime
1个回答
0
投票

假设

time
已转换为数据时间/时间戳,那么你可以从末尾向后查看以找到单调的变化:

df_GPS_rev = df_GPS.sort_values(by = 'time', ascending = False)

start_move = df_GPS_rev[df_GPS_rev['Altitude'] < df_GPS_rev['Altitude'].shift(-1)].iloc[0]

print(start_move['time'])

给出:

2024-06-21 06:22:43
© www.soinside.com 2019 - 2024. All rights reserved.