Pandas数据框中点坐标的欧几里得距离

3
我有一个Pandas数据框,其中有六列。前三列包含x、y和z坐标参考系,后三列包含某些点的坐标。我想在数据框中添加一列,用于保存这两个点之间的欧几里得距离。我考虑使用numpy.linalg.norm通过pandas.apply方法,但我不知道如何最好地解析数据框行以供numpy函数使用。你能给我一些建议吗?
2个回答

6
你可能不需要任何高端技巧:
df['dist'] = np.sqrt( (df.x1-df.x2)**2 + (df.y1-df.y2)**2 + (df.z1-df.z2)**2)

2
这是我的做法:
p1 = df[['x1', 'y1', 'z1']]
p2 = df[['x2', 'y2', 'z2']]

df['dist'] = ((p1 - p2)**2).sum(axis=1) ** 0.5

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接