我正在尝试对三维加速度计数据应用RMS函数。同时,我在开头有一个时间戳列,我将其保留为天数计数。因此,数据框如下:
0 1 2 3
0 1.963 -12.0 -71.0 -2.0
1 1.963 -11.0 -71.0 -3.0
2 1.963 -14.0 -67.0 -6.0
3 1.963 -16.0 -63.0 -7.0
4 1.963 -18.0 -60.0 -8.0
列'0'是天数,所有其他列都是加速度计的三轴数据。现在我正在使用这种方法计算RMS值并将其放入新列中,并删除现有的三轴数据:
def rms_detrend(x):
return np.sqrt(np.mean(x[1]**2 + x[2]**2 + x[3]**2))
accdf =pd.read_csv(ACC_files[1],header=None)
accdf['ACC_RMS'] = accdf.apply(rms_detrend,axis=1)
accdf = accdf.drop([1,2,3],axis=1)
accdf.columns = accdf['Days','ACC_RMS']
然而,我有70个这样的加速度计数据文件,每个文件大约有4000多行。因此,有没有更好、更快(Pythonic)的方法来处理这些数据呢?谢谢。 上面的代码只是针对一个文件进行的,速度非常慢。
apply
,你可以直接使用accdf['ACC_RMS'] = np.mean(accdf [1] **2 + accdf [2] ** 2 + accdf [3] **2)
。 - EdChum