非常感谢您的阅读。
我有一个大约200000行46列的pandas数据帧。其中23列以“_1”结尾,另23个以“_2”结尾。例如:
forename_1 surname_1 area_1 forename_2 surname_2 area_2
george neil g jim bob k
charlie david s graham josh l
pete keith k dan joe q
ben steve w richard ed p
jim bob k george neil g
dan joe q pete keith k
我已经成功地使用drop\u duplicates删除了重复的行,但是现在想删除重复的行,但是它们所在的组(1或2)已被反转。
也就是说,对于一行,我想将forename_1、姓氏_1和area_1中的组合值与forename_2、姓氏_2和area_2中所有其他行的组合值进行比较。
我想删除两个中的第二个“重复项”(例如keep='first')。
为了帮助解释,上面有两种情况需要删除重复项:
^{pr2}$在每种情况下,第二行将被删除,这意味着我的预期输出将是:
forename_1 surname_1 area_1 forename_2 surname_2 area_2
george neil g jim bob k
charlie david s graham josh l
pete keith k dan joe q
ben steve w richard ed p
我已经在R中看到了一个解决这个问题的答案,但是在Python中是否也可以实现这一点呢?
Compare group of two columns and return index matches R
Remove duplicates where values are swapped across 2 columns in R
非常感谢。
可能有更好的解决方案,但这里有一个拆分和重新组合数据帧以删除重复项,然后执行相反的操作返回原始格式:
让我们标记行,以便以后可以将它们正确地合并在一起:
^{pr2}$现在我们拆分数据帧,并重命名列:
让我们合并数据集,并删除重复项(由于“索引”排序,我们保留了第一个值)。在
好极了,不必要的一排都消失了!现在,我们将所有内容重新合并在一起(根据您的用例,您可能需要使用不同类型的联接,请参考merge documentation):
这是预期的结果!在
相关问题 更多 >
编程相关推荐