首页 > 解决方案 > 使用 Seaborn 在 Kaggle 上绘图时出错。错误说我有分类数据,即使我的数据是 int64

问题描述

我正在使用来自 Kaggle 的银行营销数据集:https ://www.kaggle.com/janiobachmann/bank-marketing-dataset

我想绘制数字列的 kdeplot,过滤deposit。每个数字列都可以正常工作,除了pdaysprevious列。

具体来说,当我用 绘制这两列时'deposit' == 'yes',没关系。但是当我用 绘制那些 2 时'deposit' == 'no',它说我的数据是分类列,因此无法完成。所有这些都适用于我的 Jupyter Notebook。

请查看此问题的一些屏幕截图: 'deposit'=='yes' 工作正常

'deposit'=='no' 表示我有分类列

更多关于这个错误

标签: pythonpandasdata-visualizationseabornkaggle

解决方案


在第二个屏幕截图中,您实际上是在尝试distplot. 此函数需要数值数据而不是分类数据。

编辑:

该列中有相当多的条目具有 value -1NaN虽然是数字,但如果我理解正确的话,在整数列中使用 a 实际上是一种技巧。

如果我替换它们并删除它们,我会得到正确的输出:

sns.kdeplot(df[df['deposit']=='no']['pdays'].replace(-1, np.nan).dropna())

在此处输入图像描述

请注意,由于通过使用新的“可空整数数据类型”pandas 0.24.0支持<NA>整数列中的条目。Int64


推荐阅读