最近公司在做关联图谱的项目,想挖掘团伙犯罪。在准备关系数据时需要根据两列组合删除数据框中的重复值,两列中元素的顺序可能是相反的。我们知道Python按照某些列去重,可用drop_duplicates函数轻松处理。详见【Python】基于某些列删除数据框中的重复值。但是对于两列中元素顺序相反的数据框去重,drop_duplicates函数无能为力。
Python中有多种方法可以处理这类问题。一种是写循环依次判断是否重复删重,另一种是用本公众号文章:Python中的集合提到的frozenset函数,一句语句解决该问题。循环太过繁琐,而且速度较慢。本文介绍一句语句解决多列组合删除数据框中重复值的问题。
文章目录
一、举一个小例子
在Python中有一个包含3列的数据框,希望根据列name1和name2组合(在两行中顺序不一样)消除重复项。原始数据如下:
希望得到结果:
这就是本文要解决的问题,接下来分享准备关系数据时的实例。