使用熊猫识别遥测数据的停止点

时间:2019-03-19 21:20:18

标签: python python-3.x pandas pandas-groupby

我有大量车辆的遥测信息(纬度,经度,时间,里程)。每个熊猫数据框都有一辆车随时间的推移,我想确定车辆何时停止。

我已经使用pandas groupby来识别车辆是否在行与行之间移动(这说明有些漂移)。

pip 但是,这并不能准确地标记停靠点。车辆在这里有明显的移动(对不起,HTML代码-否则我不知道如何将其格式化为表格)。

df['Stopped'] = (df.groupby('DAY')['LAT'].diff() <= 0.0001) & (df.groupby('DAY')['LNG'].diff() <= 0.0001)

1 个答案:

答案 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