2014-09-29 165 views
0

我有一個DataFrame df,由(age, height)組成。我希望看到的高度的平均值如何隨着年齡變化,所以我組dfage,並嘗試形成新DataFrame new_df(age, mean_height)組成,代碼低於:Python熊貓羣體聚合

groups = df.groupby('age') 
new_df = groups.agg({'height' : np.mean, 
        'age' : # HOW to add age?}) 

,但我不知道該怎麼追加agenew_df,希望任何人都可以給我一些建議。

回答

1

年齡是彙總數據框的索引:

In [95]: df = DataFrame({'age':[10,10,20,20,20], 'height':[140,150,145, 190,200]}) 

In [96]: df 
Out[96]: 
    age height 
0 10  140 
1 10  150 
2 20  145 
3 20  190 
4 20  200 

In [97]: groups = df.groupby('age') 

In [98]: groups.agg({'height':np.mean}) 
Out[98]: 
     height 
age    
10 145.000000 
20 178.333333 

而且df.groupby('age').mean()將達到同樣的效果。如果您希望將其作爲列而不是索引,請添加對reset_index()的呼叫。

作爲替代方案,您可以撥打groupbyas_index=False

groups = df.groupby('age', as_index=False) 
groups.agg({'heigt': np.mean}) 
+0

是的,你說得對。 – Alcott 2014-09-29 06:49:24