我需要计算 DataFrame 中某个列的平均值,以便计算每一行的平均值,不包括计算它的行的值。我知道我可以按索引迭代每一行,在每次迭代中按索引删除每一行,然后计算平均值。我想知道是否有更有效的方法来做到这一点。
2 回答
胡子哥哥
TA贡献1825条经验 获得超6个赞
所以mean是sum/size这样,你可以减去sum柱和除以长度的所有值DataFrame,而不1:
df = pd.DataFrame({'a':[1,2,3,4]})
#slow, working only with unique values
df['b'] = df['a'].apply(lambda x: df.loc[df.a != x, 'a'].mean())
#faster
df['b1'] = (df['a'].sum() - df['a']) / (len(df) - 1)
print (df)
a b b1
0 1 3.000000 3.000000
1 2 2.666667 2.666667
2 3 2.333333 2.333333
3 4 2.000000 2.000000
添加回答
举报
0/150
提交
取消