筛选DataFrame B中Client不在G内的行时遇报错,求解决方法
解决Pandas筛选Client不在另一个DataFrame中的问题
错误原因
你直接用B['Client'] != G['Client']报错,是因为Pandas会尝试按索引对齐逐元素比较两个Series,只有当两个Series长度一致、索引完全匹配时才能这么操作。但你的需求是判断B的Client是否属于G的Client集合,不是逐位置对比,所以这种写法不适用。
正确写法
用isin()方法结合取反操作,就能高效筛选出B中Client不在G里的行:
x = B[~B['Client'].isin(G['Client'])]
代码解释
G['Client']:提取G中所有Client的列数据B['Client'].isin(G['Client']):生成一个布尔Series,标记B中每个Client是否存在于G的Client列中~:对布尔Series取反,把“存在于G”的行排除,留下“不存在于G”的行
内容的提问来源于stack exchange,提问作者navid
相关产品推荐
相关产品推荐

