AttributeError:“ numpy.ndarray”对象没有属性“ sqrt”

时间:2019-11-05 07:33:02

标签: python-3.x pandas numpy pandas-groupby numpy-ndarray

我试图将数据帧分成相等的样本,如果任何样本值大于0.3,则应用一些函数来计算每个样本的值,然后在结果数据帧中我要保存文件名

df=pd.DataFrame({'Value':[-0.016,-0.006,0.003,-0.011,-0.036,-0.031,-0.014,-0.006,-0.01 ,-0.009,0.004,0.001,-0.012,-0.021,-0.008,0.001,-0.011,-0.01,-0.006,0.002,0.004],'Nmae':[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]})

x=pd.DataFrame([x.values.sqrt(np.mean(df2['Value']**2)) for x in np.array_split(df2, (len(df2)/10))])

遇到此错误

AttributeError:“ numpy.ndarray”对象没有属性“ sqrt”

如果有人有其他有效的方法来完成此任务

1 个答案:

答案 0 :(得分:0)

这是您的代码的有效版本:

 res= [np.sqrt(np.mean((x.Value**2))) for x in np.array_split(df, (len(df)/10))]

使用Pandas解决此问题的另一种方法是。您定义一个新列'Split_variable',并使用它来应用您的计算:

df.groupby('Split_variable')['Value'].apply(lambda x: np.sqrt(np.mean((x**2))))