python:pandas:过滤一列并获得另一列的平均值

时间:2016-12-31 03:31:39

标签: python pandas mean

我有一个python pandas数据框,如:

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

当a具有不同的值时,我希望得到b中的平均值。 例如,当a = 1时,b = 5,7,54,所以均值(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)

但它不对。希望您能够帮助我。谢谢!

1 个答案:

答案 0 :(得分:8)

您可以使用groupby进行汇总:

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

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