Python 在数据帧中计算绝对平均值

Python 在数据帧中计算绝对平均值,python,pandas,Python,Pandas,我的数据帧- df= pd.DataFrame({'A':[33,-44],'B':[44,-66],'C':[66,21]}) 我想找出忽略符号的每行绝对平均数,取平均数的公式是- 第一排- (33+ 44/2 + 66/3)/3 = 25.6 第二排- (44+66/2+21/3)/3=24.3 这不是直接平均值,但根据特定列,该值将除以特定值,如a列的1除以B列的2,依此类推 输出- Average 0 25.60000 1 24.300 是

我的数据帧-

df= pd.DataFrame({'A':[33,-44],'B':[44,-66],'C':[66,21]})
我想找出忽略符号的每行绝对平均数,取平均数的公式是-

第一排-

(33+ 44/2 + 66/3)/3 = 25.6
第二排-

(44+66/2+21/3)/3=24.3
这不是直接平均值,但根据特定列,该值将除以特定值,如a列的1除以B列的2,依此类推

输出-

        Average
     0  25.60000
     1  24.300
是的-

df[['average']]= (abs(df[['A']]).values + abs(df[['B']]/2).values +  abs(df[['C']]/3).values )/3 

但是它的给出错误

在pd.系列中不可能吗

((abs(df['A'])+abs(df['B']/2)+abs(df['C']/3))/3).to_frame()

您的代码有错误,因为: 他们错误地认为:['average']在索引中,当然是['A'],['B'],。。。。也是

你应该试试这个:

df['average']= (abs(df['A']).values + abs(df['B']/2).values +  abs(df['C']/3).values )/3
尝试:

如果有更多列,则:

df["average"] = (df[['A','B','C']].abs()/np.arange(1,4)).mean(axis=1)

你的数字加起来不正确。77/3是如何得到47.6的?@HenryYik谢谢你。我在计算中犯了一个错误使用df[average]=absdf[a]+absdf[B]/2+absdf[C]/3/3。
df["average"] = (df[['A','B','C']].abs()/np.arange(1,4)).mean(axis=1)