我正在使用 pandas 0.24.2,但无法对 Categorical
实例执行简单的等式测试。例如,使用以下代码:
Original Answer 翻译成“最初的回答”。
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
我知道y
的底层类型是Categorical
,这是由于cut()
的输出所确定的。然而,我在Categorical
中找不到任何特殊的相等方法;此外,文档甚至指出,“相等比较适用于...标量”。我的方法有什么问题?
最初的回答:
pd.Interval
。所以比较语句d["y"] == pd.Interval(0.997, 2.0, closed='right')
应该能正常工作。 - undefined