簡體   English   中英

如何在 Pandas 中使用 groupby 划分 2 個聚合列?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM