2016-12-31 116 views
3

的平均我有一个python熊猫数据帧,如:蟒蛇:大熊猫:筛选一列,并得到另一列

a b 
1 5 
3 6 
1 7 
2 8 
2 34 
3 35 
1 54 
3 123 
4 2353 
... .... 

我想要得到的值的平均值b中,当有不同的价值。 (a = 1)=(5 + 7 + 54)/ 3;当a = 2时,b = 8,34,所以平均值(a = 2)=(8 + 34)/ 2;

我的尝试是

aaa = [] 
for v in df['a']: 
    aaa.append(np.mean(df['b']) 
print (aaa) 

但它是不正确的。希望您能够帮助我。谢谢 !

回答

5

可以使用groupby为聚集:

df.groupby('a').b.mean() 

#a 
#1  22.000000 
#2  21.000000 
#3  54.666667 
#4 2353.000000 
#Name: b, dtype: float64 
+0

感谢这么多,你能告诉我怎么走,而不是mean.thanks –

+2

你可以用'位数()'0.75概率上四分位数。 'df.groupby( 'A')。位数([0.75])'。 – Psidom