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