Pandas数据框是指变量

时间:2014-10-20 09:29:39

标签: python pandas

我有一个数据框

a = pd.DataFrame({'a':[1,2,3,4], 'b':[1,1,2,2], 'c':[1,1,1,2]})
>>> a
   a  b  c
0  1  1  1
1  2  1  1
2  3  2  1
3  4  2  2

我想根据b和c的值计算一次分组的平均值。

所以我应该将数据分成3组:

b=1,c=1     
b=1,c=2
b=2,c=2

然后计算每组中a的平均值。

我该怎么做? 我怀疑我必须使用groupby,但我不明白如何。

1 个答案:

答案 0 :(得分:3)

您可以通过传递列名列表来对多个列进行分组,然后它只是在gorupby对象上调用mean的简单情况:

In [4]:

a.groupby(['b','c']).mean()

Out[4]:
       a
b c     
1 1  1.5
2 1  3.0
  2  4.0

如果要将按后面分组的列还原为列,只需调用reset_index()

In [5]:

a.groupby(['b','c']).mean().reset_index()

Out[5]:
   b  c    a
0  1  1  1.5
1  2  1  3.0
2  2  2  4.0