2017-06-15 89 views
0

我有以下數據框:使用groupby pandas python時從數據框中獲取列。

Age Sex 
10  M 
20  M 
30  F 
15  F 

,我希望有一個數據幀,其中包括每性別的平均年齡。那就是:

Age Sex Average 
10  M  15 
20  M  15 
30  F  22.5 
15  F  22.5 

但是我所做的是:

average = dataframe.groupby('Sex').mean() 

有了這樣的我只想用的連接功能。儘管如此,數據幀 不包括作爲列的性別,所以我不能合併它。

回答

1

嘗試使用:

average = dataframe.groupby('Sex', as_index=False).mean() 

設置as_index=False將包括Sex在結果數據幀的列。

+0

完美地工作! –

1

無需進行歸併,使用transform

dataframe['Average'] = dataframe.groupby('Sex').transform('mean') 

一般情況下,使用transform當你想在相同的形狀,你原來的數據幀組級別聚集。

輸出結果:

Age Sex Average 
0 10 M  15.0 
1 20 M  15.0 
2 30 F  22.5 
3 15 F  22.5