熊猫分类平等测验

时间:2019-06-19 13:46:29

标签: python pandas

我正在使用pandas 0.24.2,并且无法对Categorical实例执行简单的相等性测试。例如,使用以下代码:

d = DataFrame({"x" : [1, 2, 3, 4]})
d["y"] = pd.cut(d["x"], bins=3)

d的内容现在是:

    x   y
0   1   (0.997, 2.0]
1   2   (0.997, 2.0]
2   3   (2.0, 3.0]
3   4   (3.0, 4.0]

但是,我无法测试y与字符串值是否相等,例如:

d["y"] == '(3.0, 4.0]'

产生:

0    False
1    False
2    False
3    False
Name: y, dtype: bool

由于cut()的输出,我知道y的基础类型是Categorical。但是,我在Categorical中找不到任何用于平等的特殊方法。此外,该文档甚至声明“平等比较适用于…标量”。我的方法中缺少什么?

2 个答案:

答案 0 :(得分:4)

这是间隔,因此请传递到pd.Interval

d.y==pd.Interval(3,4)
Out[255]: 
0    False
1    False
2    False
3     True
Name: y, dtype: bool

答案 1 :(得分:2)

或者,您也可以将数据类型强制转换为“字符串”:

d["y"].astype(str) == "(3.0, 4.0]"

输出:

0    False
1    False
2    False
3     True
Name: y, dtype: bool