В кадре данных у меня есть 4 переменные, которые являются X, Y, Z и W ориентациями робота.Каждая строка представляет измерение с этими четырьмя значениями.
x = [-0.75853, -0.75853, -0.75853, -0.75852]
y = [-0.63435, -0.63434, -0.63435, -0.63436]
z = [-0.10488, -0.10490, -0.10492, -0.10495]
w = [-0.10597, -0.10597, -0.10597, -0.10596]
df = pd.DataFrame([x, y, z, w], columns=['x', 'y', 'z', 'w'])
Я написал нижеприведенную функцию, которая возвращает три различия между двумя кватернионами:
from pyquaternion import Quaternion
def quaternion_distances(w1, x1, y1, z1, w2, x2, y2, z2):
""" Create two Quaternions objects and calculate 3 distances between them """
q1 = Quaternion(w1, x1, y1, z1)
q2 = Quaternion(w2, x2, y2, z2)
dist_by_signal = Quaternion.absolute_distance(q1, q2)
dist_geodesic = Quaternion.distance(q1, q2)
dist_sim_geodec = Quaternion.sym_distance(q1, q2)
return dist_by_signal, dist_geodesic, dist_sim_geodec
Эта разница рассчитывается на основе значенийвторая строка по значениям первой строки.Таким образом, я не могу использовать функцию применения Pandas.
Я уже добавил три столбца в фрейм данных, так что я получаю каждое из значений, возвращаемых функцией:
df['dist_by_signal'] = 0
df['dist_geodesic'] = 0
df['dist_sim_geodec'] = 0
Проблемаявляется: как применить вышеуказанную функцию к каждой строке и включить результат в эти новые столбцы?Можете ли вы дать мне предложение?