我正在研究泰坦尼克号的数据集,它是从以下网站获得的:https://public.opendatasoft.com/explore/dataset/titanic-passengers/table/?flg=fr
我想显示每个幸存班级的男性和女性人数(是或否)。
首先,我得到了男性和女性的总人数,使用:
bysex=data1['Sex'].value_counts()
print(bysex)这给了我以下结果:
male 577
female 314
Name: Sex, dtype: int64结果表明,男性多于女性。
但是,当我使用seaborn来显示每个幸存班级的男性和女性人数时,使用以下代码:
plot1 = sns.FacetGrid(data1, col='Survived')
plot1.map(sns.countplot,'Sex')然后我得到这个结果:enter image description here
在这里,它表明,女性的数量大于男性的数量,对于没有幸存的类别,女性的数量(约450)甚至超过了女性的总数(314)。
这怎麽可能?
发布于 2019-10-30 18:41:12
我认为映射有问题。在左边的图中,性别是互换的。
data1.loc[data1["Survived"] == "No", 'Sex'].value_counts()
male 468
female 81
Name: Sex, dtype: int64第二个情节是正确的。
data1.loc[data1["Survived"] == "Yes", 'Sex'].value_counts()
female 233
male 109
Name: Sex, dtype: int64另一方面,当您使用
ax = sns.countplot(x="Survived", hue="Sex", data=data1)你会得到正确的结果。

https://stackoverflow.com/questions/58623206
复制相似问题