У меня есть два фрейма данных, LP_pos
и vel
, где LP_pos
содержит данные положения, которые будут использоваться для расчета скорости, которая будет go во втором фрейме данных.
Я хочу вычислить скорость каждой строки df с использованием np.gradient()
, путем итерации по столбцам df1 и создания нового столбца в df2 с информацией, вычисленной с градиентом. Вот что у меня есть
# create a new column for velocity
def vel(df1, df2):
for col in df1:
df2[col + '_vel'] = np.gradient(df1[col], df1['Time'])
return df2
vel(LP_pos, vel)
Но я получаю эту ошибку:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-14-c69328603d12> in <module>
5 return df2
6
----> 7 vel(LP_pos, vel)
<ipython-input-14-c69328603d12> in vel(df1, df2)
2 def vel(df1, df2):
3 for col in df1:
----> 4 df2[col + '_vel'] = np.gradient(df1[col], df1['Time'])
5 return df2
6
TypeError: 'function' object does not support item assignment
Может ли кто-нибудь помочь мне с этим?
Примеры данных:
Time X Y Z
0 0.00 0.245740 0.204112 0.168514
1 0.01 0.245737 0.204115 0.168523
2 0.02 0.245732 0.204117 0.168532
3 0.03 0.245723 0.204118 0.168541
Желаемый выход:
Time X_vel Y_vel Z_vel
0 0.00 grad(X1) grad(Y1) grad(Z1)
1 0.01 grad(X2) grad(Y2) ...
2 0.02 grad(X3) ... ...
3 0.03 grad(X4) ... ...