熊猫似乎无法在列表中找到所有元素:
df = pd.DataFrame({"rid": ["125264429", "a"], "id": [1, 2]})
1 in df["id"] # <- expect True, get True
"125264429" in df["rid"] # <- expect True, get False
df[df["rid"] == "125264429"] # <- yields result
我确信对这种行为有一个完全合理的解释,但我似乎找不到它。最后两列似乎互相矛盾。 它是否与“rid”列的数据类型是object这一事实有关?你知道吗
如果使用
in
运算符,它测试的不是序列/列的值,而是索引值,docs:类似于:
因此,如果将值转换为numpy数组或按预期方式列出它:
我不确定in在这里做什么,但肯定不是您想要的(例如,请求
2 in df["id"]
也返回false
)问题是,你不能用在列表或集合中。 所以你有两个选择:
或者
(好的,可能还有一百万,但这些是我能看到的最简单的)
相关问题 更多 >
编程相关推荐