2

我在 Python 中有这样的 DataFrame:

df=pd.DataFrame({"Sex":["male", "male", "female", "male"],
                "Survived":[0,0,1,1]})

我想计算一下“男性”中有多大比例在“1”中幸存下来。所以我需要从DataFrame中获取所有Sex =“male”和Survived = 1的代码将它除以所有Sex =“male”

我的预期输出是:1/3 = 0,3333

4

1 回答 1

1

我们可以先过滤男性候选人的数据框,然后在这里计算平均值,因为该Survived列仅由0s 和1s 组成:

>>> df.loc[df['Sex'] == 'male', 'Survived'].mean()
0.3333333333333333

或者,如果您想要每个性别的生存百分比,我们可以通过以下方式进行分组:

>>> df.groupby('Sex')['Survived'].mean()
Sex
female    1.000000
male      0.333333
Name: Survived, dtype: float64

因此,100% 的女性(1/1)幸存下来,而 33.33% 的男性(1/3)幸存下来。

于 2019-12-25T16:49:49.897 回答