庞德数据帧中点坐标的欧几里德距离

时间:2016-08-25 13:59:37

标签: python pandas numpy dataframe

我有一个包含六列的pandas数据框,前三列包含 x y z 参考坐标,接下来的三个 - 某点的坐标。我想在数据帧的新列中将这两个点之间的欧氏距离放在一起。我想通过numpy.linalg.norm方法使用pandas.apply,但我不知道解析numpy函数的数据帧行的最佳方法是什么。你能给我一些建议吗?

2 个答案:

答案 0 :(得分:4)

你可能不需要任何奇特的魔法:

df['dist'] = np.sqrt( (df.x1-df.x2)**2 + (df.y1-df.y2)**2 + (df.z1-df.z2)**2)

答案 1 :(得分:1)

以下是我的表现方式:

p1 = df[['x1', 'y1', 'z1']]
p2 = df[['x2', 'y2', 'z2']]

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