Countplot 函数不适用于分箱数据

Posted

技术标签:

【中文标题】Countplot 函数不适用于分箱数据【英文标题】:Countplot function does not work on binned data 【发布时间】:2021-02-27 14:35:46 【问题描述】:

所以我一直在尝试将数据分配到 bin 中,然后对其使用 countplot 函数。但这给了我一个错误。代码的分箱部分似乎工作正常,问题可能出在 countplot 函数上。如果您能建议如何更正以下内容,那就太好了。 ps:这可能看起来微不足道,但我是数据科学的新手。

binned=pd.cut(lab3['Survived'],[0,10,20,30,40,50,60,70,80])
p = sns.countplot(x='Survived',data=binned, hue='Survived')

错误:

ValueError                                Traceback (most recent call last)
<ipython-input-41-67a29c8aa363> in <module>()
      1 labels = [0-10,11-20]
      2 binned=pd.cut(lab3['Survived'],[0,10,20,30,40,50,60,70,80])
----> 3 p = sns.countplot(x='Survived',data=binned, hue='Survived')

3 frames
/usr/local/lib/python3.6/dist-packages/seaborn/categorical.py in establish_variables(self, x, y, hue, data, orient, order, hue_order, units)
    151                 if isinstance(var, str):
    152                     err = "Could not interpret input ''".format(var)
--> 153                     raise ValueError(err)
    154 
    155             # Figure out the plotting orientation

ValueError: Could not interpret input 'Survived'

【问题讨论】:

【参考方案1】:

pd.cut() 返回一个 Series 对象(并且不会返回您原来的 DataFrame 和一个新列。因此,如果您绘制 binned 它会尝试绘制 Series 并且找不到您的原始列 @ 987654326@.

您可以将分箱系列添加到原始数据框:

lab3.assign(binned=pd.cut(lab3['Survived'],[0,10,20,30,40,50,60,70,80]))

我猜之后的绘图会按预期进行

【讨论】:

以上是关于Countplot 函数不适用于分箱数据的主要内容,如果未能解决你的问题,请参考以下文章

分箱数据和包含结果

转换函数不适用于 CLOB 数据类型

数据表 columnDefs 宽度不适用于 initComplete:函数

“Excel.run”是不是不适用于用户定义的函数?

函数适用于列表的一个元素,不适用于完整列表,R

覆盖函数内部的全局变量不适用于 Spyder 4