人間ごとの移動距離の合計を算出したいです。
データフレームには人間A,Bの座標がそれぞれ記録されていています。Aは(10,100,1),(20,200,2),(30,250,3),(40,300,4)と移動し、Bは(50,150,5),(60,200,6),(70,400,7)と移動します。A,Bそれぞれの移動距離を出すために、まずdiffでグループごとにx軸、y軸、z軸の差をとって、そこから距離を出そうと考えたのですが、diffをとった時点でgroup(人)のデータがなくなっていまい、グループ化できなくなり最初でつまずいてしまいました。グループごとの移動距離を出す何かいい方法がありますでしょうか。
行った処理は以下です。
import pandas as pd
import numpy as np
df = pd.DataFrame({
'人': ['A', 'A', 'A', 'A', 'B', 'B', 'B'],
'x座標': [10, 20, 30, 40, 50, 60, 70],
'y座標': [100, 200, 250, 300, 150, 200, 400],
'z座標': [1, 2, 3, 4, 5, 6, 7]
})
df
df.groupby("人").diff(axis = 0)
diffを行った時点で一番左のカラムが"人"ではなく、連番になってしまい、グループが消えてしまいます。
グループごとの移動距離を出すための方法はありますでしょうか?
回答1件
あなたの回答
tips
プレビュー