gpt4 book ai didi

python - Pandas 按分类间隔过滤

转载 作者:行者123 更新时间:2023-12-04 17:36:26 33 4
gpt4 key购买 nike

我创建了一个数据框并将一列归类为间隔:

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.] 检查相等性会产生这个结果?我希望得到一个空结果,因为数据帧中不存在该间隔。

我应该使用不同的方法过滤吗?

最佳答案

对于精确匹配,可以使用 hack 解决方案 - 将两者都转换为字符串:

a = df_test[df_test['cat'].astype(str) == str(pd.Interval(left=1., right=2.))]

或使用 apply :
a = df_test[df_test['cat'].apply(lambda x: x == pd.Interval(left=1., right=2.))]
print (a)
Empty DataFrame
Columns: [col, cat]
Index: []

更多信息为什么这是为了检查成员(member)资格是 here

关于python - Pandas 按分类间隔过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56539764/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com