我有大量车辆的遥测信息(纬度,经度,时间,里程)。每个熊猫数据框都有一辆车随时间的推移,我想确定车辆何时停止。
我已经使用pandas groupby来识别车辆是否在行与行之间移动(这说明有些漂移)。
pip
但是,这并不能准确地标记停靠点。车辆在这里有明显的移动(对不起,HTML代码-否则我不知道如何将其格式化为表格)。
df['Stopped'] = (df.groupby('DAY')['LAT'].diff() <= 0.0001) & (df.groupby('DAY')['LNG'].diff() <= 0.0001)
答案 0 :(得分:0)
查看df.groupby('DAY')['LAT'].diff()
的输出。许多值都是负值,因此在检查它们是否小于临界值之前,您需要获取绝对值:
df['Stopped2'] = (df.groupby('DAY')['LAT'].diff().abs() <= 0.0001) & (df.groupby('DAY')['LNG'].diff().abs() <= 0.0001)
print(df)
Stopped LAT LNG DAY Stopped2
401218 True 22.6874 113.9487 10/15/18 False
401219 True 22.6874 113.9487 10/15/18 True
401220 True 22.6874 113.9487 10/15/18 True
401221 True 22.6873 113.9487 10/15/18 True
401222 True 22.6869 113.9483 10/15/18 False
401223 True 22.6863 113.9479 10/15/18 False
401224 True 22.6859 113.9476 10/15/18 False
401225 True 22.6854 113.9471 10/15/18 False
401226 True 22.6849 113.9468 10/15/18 False
401227 True 22.6844 113.9463 10/15/18 False
401228 True 22.6841 113.9457 10/15/18 False
401229 True 22.6839 113.9449 10/15/18 False
401230 True 22.6838 113.9438 10/15/18 False
401231 True 22.6837 113.9428 10/15/18 False
401232 True 22.6837 113.9417 10/15/18 False
401233 True 22.6836 113.9409 10/15/18 False
401234 True 22.6835 113.9400 10/15/18 False
401235 True 22.6833 113.9392 10/15/18 False
401236 True 22.6832 113.9387 10/15/18 False
401237 True 22.6832 113.9384 10/15/18 False