Python 数据帧中点坐标的欧氏距离

Python 数据帧中点坐标的欧氏距离,python,pandas,numpy,dataframe,Python,Pandas,Numpy,Dataframe,我有一个有六列的熊猫数据框,前三列包含x、y和z参考坐标,下三列包含某个点的坐标。我想把这两点之间的欧几里德距离放在数据帧的新列中。我考虑通过pandas.apply方法使用numpy.linalg.norm,但我不知道为numpy函数解析数据帧行的最佳方法是什么。你能给我一些建议吗?你可能不需要任何神奇的魔法: df['dist'] = np.sqrt( (df.x1-df.x2)**2 + (df.y1-df.y2)**2 + (df.z1-df.z2)**2) 我是这样做的: p1 =

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

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

df['dist'] = np.sqrt( (df.x1-df.x2)**2 + (df.y1-df.y2)**2 + (df.z1-df.z2)**2)
我是这样做的:

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

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