Seaborn计数图在Titanic数据集上显示错误结果

时间:2019-10-30 10:23:19

标签: python seaborn

我正在处理从网站上获得的Titanic数据集: 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)。

这怎么可能?

1 个答案:

答案 0 :(得分:0)

我认为映射存在问题。 在左图中,“性”互换了。

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)

您得到正确的结果。

enter image description here