【发布时间】:2020-10-17 21:05:17
【问题描述】:
在 Titanic 数据集中,我希望计算每个乘客等级 (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'))
所以,我得到以下输出:
PassengerCount SurvivedPassengerCount
Pclass
1 216 136
2 184 87
3 491 119
但是如何获得百分比列?我想要的输出如下:
PassengerCount SurvivedPassengerCount PercSurvived
Pclass
1 216 136 62.9%
2 184 87 47.3%
3 491 119 24.2%
提前致谢!
【问题讨论】:
-
将乘客加总为totpassengers,然后创建一个新列df['perc'] = df.passengerconnt/totpassengers
-
@Tarik - 嗨..我想一步完成。另外我不想将此输出保存在数据框中。有没有办法做到这一点?
-
这可能对你有帮助:stackoverflow.com/questions/40301973/… 虽然我不明白避免额外声明的意义。
标签: python pandas aggregation