Pythonでのグループ内で、多くの結果として点について、2点間の距離を計算する方法

私は次のことを持っています df

       id             xx            yy  time
0       1  553343.041098  4.178420e+06     1
1       1  553343.069815  4.178415e+06     2
2       1  553343.069815  4.178415e+06     3
3       2  553343.950755  4.178415e+06     1
4       2  553341.343829  4.178410e+06     6

それぞれの位置でのある時点でxxyyidtime

私はこの中に余分な列を作成したいと思いますdf(の最小値から行く別の時間の一点からの距離の差になり、time内、大きな、など1次大きめの隣に)idグループ。

そうすることのPython的な方法はありますか?

moys:

あなたは以下のように行うことができます。

私はしませんでしたdf['distance_meters']、それは簡単ですので。

df['xx_diff']=df.groupby('id')['xx'].diff()**2
df['yy_diff']=df.groupby('id')['yy'].diff()**2

あなたは[「xx_diff」]&[「yy_diff」]あなたのデータフレーム内の列を必要としない場合は、直接以下のコードを使用することができます。

df['distance']= np.sqrt(df.groupby('id')['xx'].diff()**2+df.groupby('id')['yy'].diff()**2)

出力

    id            xx         yy time    xx_diff3    yy_diff3    distance
0   1   553343.041098   4178420.0   1   NaN            NaN      NaN
1   1   553343.069815   4178415.0   2   0.000825       25.0     5.000082
2   1   553343.069815   4178415.0   3   0.000000       0.0      0.000000
3   2   553343.950755   4178415.0   1   NaN            NaN      NaN
4   2   553341.343829   4178410.0   6   6.796063      25.0      5.638800

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=8999&siteId=1