У меня есть панд dataframe с шестью колоннами, первые три столбца содержит х, у и г эталонных координатные, а следующие три - координаты некоторой точки. Я хочу поставить эвклидовое расстояние между этими двумя точками в новом столбце фреймворка. Я думаю об использовании numpy.linalg.norm
методом pandas.apply
, но я не знаю, что является лучшим методом для синтаксического анализа строки данных для функции numpy. Не могли бы вы дать мне несколько предложений?евклидово расстояния координат точек в панде dataframe
2
A
ответ
1
Вы можете не нужны никакие фантазии магии здесь:
df['dist'] = np.sqrt((df.x1-df.x2)**2 + (df.y1-df.y2)**2 + (df.z1-df.z2)**2)
0
Вот как я это делаю:
p1 = df[['x1', 'y1', 'z1']]
p2 = df[['x2', 'y2', 'z2']]
df['dist'] = ((p1 - p2)**2).sum(axis=1) ** 0.5