【问题标题】:How to exclude a category from a mask如何从掩码中排除类别
【发布时间】:2022-01-01 08:39:25
【问题描述】:
sns.histplot(data=DS1[(DS1.TuWgt<30000) & (DS1.TuType!=1001)], x="TuWgt",hue="TuType",multiple="stack")

这就是我要运行的线路。 TuType 是一个类别。

TypeError: &: 'int' 和 'Categorical' 的操作数类型不受支持

【问题讨论】:

    标签: python pandas mask


    【解决方案1】:

    &amp; 运算符的优先级高于 &lt;!= 运算符,因此您的代码是这样执行的:

    sns.histplot(data=DS1[DS1.TuWgt < (30000 & DS1.TuType) != 1001], x="TuWgt",hue="TuType",multiple="stack")
    

    ...这是错误的(并且令人困惑)。 相反,在&amp; 加入的条件周围添加括号,如下所示:

    sns.histplot(data=DS1[(DS1.TuWgt<30000) & (DS1.TuType!=1001)], x="TuWgt",hue="TuType",multiple="stack")
    

    【讨论】:

    • 谢谢!那真的很有帮助。现在代码可以工作了,我得到了一个直方图,但我要排除的类别仍然存在。
    • 您需要向我们展示您的数据框样本,以便我们提供帮助。由于这实际上是一个稍微不同 的问题,我建议为此打开一个new 问题。把它链接在这里,我会看看我能在那里做什么。
    【解决方案2】:

    我不确定您的 dtype 是什么,但如果您确定 TuWgt 和 TuType 只是数字,请尝试将条件括在括号中:

    sns.histplot(data=DS1[(DS1.TuWgt<30000) & (DS1.TuType!=1001)], x="TuWgt",hue="TuType",multiple="stack")
    

    否则&amp;操作优先级更高,所以你尝试将&amp;应用到30000DS1.TuType

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-06-30
      • 2016-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-13
      • 1970-01-01
      相关资源
      最近更新 更多