【发布时间】:2018-09-14 00:30:02
【问题描述】:
基本上,我想使用 python 查找 DataFrame A 中但不在 DataFrame B 中的 ID。我按照this post中的建议进行操作,结果却不是我所期望的。
考虑以下场景:
a = pd.DataFrame(data= {"id":[1, 1, 1, 2, 3, 4, 5],'score':[90,90,91,92,93,94,99]})
b = pd.DataFrame(data= {"id":[1, 2, 3, 4, 5],'letter':['a','b','c','d','e']})
在做:
set([x for x in a['id'] if x not in b['id']])
正如the post mentioned above 建议的那样,给出{5},这样做的时候是一样的:
set(filter(lambda x: x not in b['id'], a['id']))
这不是我所期望的。预期的结果应该是一个空的set(),可以通过这样做来实现:
set(a["id"]) - set(b["id"])
有人能解释一下为什么上面的代码会产生不同的结果吗?将不胜感激。
【问题讨论】: