使用latby,使用groupby熊猫计算跟踪数据的长度,每个检查员的行进距离

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

我有一个数据框,如下所示。检查员几乎每分钟都在跟踪数据(纬度和经度)。

Inspector_ID   Timestamp               Latitude      Longitude
1              2018-07-24 7:31:00      100.491491    13.725239
1              2018-07-24 7:31:01      101.491491    15.725239
1              2018-07-24 7:32:04      104.491491    14.725239
1              2018-07-24 7:33:06      102.491491    10.725239
2              2018-07-24 8:35:08      105.491491    8.725239
2              2018-07-24 8:36:10      101.491491    15.725239
2              2018-07-24 8:37:09      101.491491    12.725239
2              2018-07-24 8:39:00      106.491491    16.725239

根据以上数据,我想从每个连续的跟踪数据(检查员的纬度和经度)中找出检查员所走过的距离。

预期的输出(示例)

Inspector_ID      Timestamp               Latitude      Longitude    Distance
    1              2018-07-24 7:31:00      100.491491    13.725239    nan
    1              2018-07-24 7:31:01      101.491491    15.725239    2.3
    1              2018-07-24 7:32:04      104.491491    14.725239    1.2
    1              2018-07-24 7:33:06      102.491491    10.725239    3.6
    2              2018-07-24 8:35:08      105.491491    8.725239     nan
    2              2018-07-24 8:36:10      101.491491    15.725239    5.6
    2              2018-07-24 8:37:09      101.491491    12.725239    2.1
    2              2018-07-24 8:39:00      106.491491    16.725239    3

这里,我想根据Inspector_ID计算距离分组。

注意:“距离”列中填充的数字不是正确的距离。

我不知道如何使用纬度和经度计算距离。我也是大熊猫的新手。

pandas pandas-groupby geopandas
1个回答
1
投票

使用GroupBy.diff

GroupBy.diff

如果要用0代替df['distance']=df.groupby('Inspector_ID')[['Latitude','Longitude']].diff().pow(2).sum(axis=1,min_count=1).pow(1/2) print(df) Inspector_ID Timestamp Latitude Longitude distance 0 1 2018-07-24 07:31:00 100.491491 13.725239 NaN 1 1 2018-07-24 07:31:01 101.491491 15.725239 2.236068 2 1 2018-07-24 07:32:04 104.491491 14.725239 3.162278 3 1 2018-07-24 07:33:06 102.491491 10.725239 4.472136 4 2 2018-07-24 08:35:08 105.491491 8.725239 NaN 5 2 2018-07-24 08:36:10 101.491491 15.725239 8.062258 6 2 2018-07-24 08:37:09 101.491491 12.725239 3.000000 7 2 2018-07-24 08:39:00 106.491491 16.725239 6.403124 ,请删除NaN

  • 这里要做的是计算由每个检查器的连续点构成的每个向量的模数
© www.soinside.com 2019 - 2024. All rights reserved.