Home > Net >  How to exclude a category from a mask
How to exclude a category from a mask

Time:11-23

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

So this is the line I'm trying to run. TuType is a category.

TypeError: unsupported operand type(s) for &: 'int' and 'Categorical'

CodePudding user response:

The & operator has a higher priority than the < and != operators, so your code is being executed like this:

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

...which is wrong (and confusing). Instead, add parentheses around the conditions joined by &, like this:

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

CodePudding user response:

I'm not sure what are your dtypes are, but if you are sure TuWgt and TuType are numeric only, try to wrap the conditions into parentheses:

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

Otherwise & operation has higher priority, so you try to apply & to 30000 and DS1.TuType

  • Related