![](/img/trans.png)
[英]Using a pandas dataframe how to aggregate and groupby and bring in non aggregated/groupby columns
[英]How to divide 2 aggregated columns using groupby in Pandas?
在 Titanic 數據集中,我希望計算每個乘客 class(Pclass)1,2 和 3 中幸存的乘客百分比。我想出了如何計算乘客數量和數量。 使用 group by 幸存的乘客如下:
train[['PassengerId','Pclass','Survived']]\
.groupby('Pclass')\
.agg(PassengerCount=pd.NamedAgg(column='PassengerId', aggfunc='count'),
SurvivedPassengerCount=pd.NamedAgg(column='Survived',aggfunc='sum'))
所以,我得到以下 output:
PassengerCount SurvivedPassengerCount
Pclass
1 216 136
2 184 87
3 491 119
但是我如何獲得百分比列? 我想要 output 如下:
PassengerCount SurvivedPassengerCount PercSurvived
Pclass
1 216 136 62.9%
2 184 87 47.3%
3 491 119 24.2%
提前致謝!
由於您只需要將SurvivedPassengerCount
除以PassengerCount
,因此可以使用.assign
方法執行此操作:
result = train[['PassengerId','Pclass','Survived']]\
.groupby('Pclass')\
.agg(PassengerCount=pd.NamedAgg(column='PassengerId', aggfunc='count'),
SurvivedPassengerCount=pd.NamedAgg(column='Survived',aggfunc='sum'))\
result = result.assign(PercSurvived=df['PassengerCount']/df['SurvivedPassengerCount'])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.