Pandas dataframe 如何添加距离上一行的列?
Pandas dataframe how to add column of distance from previous row?
我有一个位置数据框:
df = X Y
1 1
2 1
2 1
2 2
3 3
5 5
5.5 5.5
我想添加一列,其中包含到上一点的距离:
所以它将是:
df = X Y Distance
1 1 0
2 1 1
2 1 0
2 2 1
3 3 2
5 5 2
5.5 5.5 1
最好的方法是什么?
您可以使用pd.Series.diff方法。
例如,要计算欧拉距离,还使用 np.sqrt,您可以这样做:
import numpy as np
df["Distance"] = np.sqrt(df.X.diff()**2 + df.Y.diff()**2)
我有一个位置数据框:
df = X Y
1 1
2 1
2 1
2 2
3 3
5 5
5.5 5.5
我想添加一列,其中包含到上一点的距离: 所以它将是:
df = X Y Distance
1 1 0
2 1 1
2 1 0
2 2 1
3 3 2
5 5 2
5.5 5.5 1
最好的方法是什么?
您可以使用pd.Series.diff方法。
例如,要计算欧拉距离,还使用 np.sqrt,您可以这样做:
import numpy as np
df["Distance"] = np.sqrt(df.X.diff()**2 + df.Y.diff()**2)