2016-08-25 4 views
2

У меня есть панд dataframe с шестью колоннами, первые три столбца содержит х, у и г эталонных координатные, а следующие три - координаты некоторой точки. Я хочу поставить эвклидовое расстояние между этими двумя точками в новом столбце фреймворка. Я думаю об использовании numpy.linalg.norm методом pandas.apply, но я не знаю, что является лучшим методом для синтаксического анализа строки данных для функции numpy. Не могли бы вы дать мне несколько предложений?евклидово расстояния координат точек в панде dataframe

ответ

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