2014-10-20 151 views
0

意味着我有一個數據幀熊貓數據幀由變量

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 

,然後計算的平均每組英寸

我該怎麼做? 我懷疑我必須使用groupby,但我不明白。

+2

您的意思是'a.groupby(['b','c'])。mean()'? – EdChum 2014-10-20 09:30:58

回答

3

你可以通過列名的列表GROUPBY多列,那麼它的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 
+0

這是完美的,但有沒有辦法以DataFrame格式獲得結果?像列b,c,是什麼意思?我不明白如何訪問此類數據中的字段 – Donbeo 2014-10-20 09:34:28

+0

您的意思是您希望將'b'和'c'作爲列嗎?只需在返回的對象上調用'reset_index()'即可 – EdChum 2014-10-20 09:35:12