我有一个这样的数据框:
data1 = pd.DataFrame([['a','z',0],['a','y',20],['b','z',1]],columns=['id1','id2','number'])
data2 = pd.DataFrame([['a','y',1],['a','y',1],['b','z',0]],columns=['id1','id2','number'])
我想返回data1而不是data2中的记录(由id1和id2连接)。
在这种情况下,我只希望它返回一个记录['a','z',0],因为['a','y']和['b','z']都确实存在于data2中。
我认为还有另一种方法。如果我们将两个列都设置为索引,则可以使用.isin
方法过滤出所需的内容:
data1.set_index(['id1', 'id2'], inplace=True)
data2.set_index(['id1', 'id2'], inplace=True)
data1[~data1.index.isin(data2.index)].reset_index()
产量:
id1 id2 number
0 a z 0
不管你有什么东西number
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句