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)