我创建了一个数据框,并将其中一列划分为区间:
df_test = pd.DataFrame({'col': [0,1,2,3,4,5,6]})
df_test['cat']= pd.cut(df_test['col'],[-1.,0.,3.,10.])
df_test
col cat
0 0 (-1.0, 0.0]
1 1 (0.0, 3.0]
2 2 (0.0, 3.0]
3 3 (0.0, 3.0]
4 4 (3.0, 10.0]
5 5 (3.0, 10.0]
6 6 (3.0, 10.0]
现在我想使用cat列来过滤这个数据框:
df_test[df_test['cat'] == pd.Interval(left=1., right=2.)]
col cat
1 1 (0.0, 3.0]
2 2 (0.0, 3.0]
3 3 (0.0, 3.0]
为什么使用(1., 2.]检查相等性会得到这个结果?我原本期望得到一个空结果,因为这个区间在数据框中不存在。
我应该使用不同的方法来过滤吗?