我有以下形式的熊猫数据框:

   head      relation    tail
0   two  DistinctFrom     one
2   two           IsA  number
12  one       Antonym     two
15  one           IsA  number


从上面的数据框中,我只想保留一条记录,其中头实体与尾实体相同,尾实体与头实体相同。例如,从索引为零和索引为12的Recodr中,我只想保留一个,可以是第一个或最后一个,任何事情都可以做。

例如,保留第一条记录后,最终数据帧将如下所示:

   head      relation    tail
0   two  DistinctFrom     one
2   two           IsA  number
15  one           IsA  number


要么

保留最后一条记录时,数据帧会像

头尾关系
2个两个IsA号
12一反义词二
15个IsA号码

谢谢。

最佳答案

一种方法是同时使用headtail列对数据框建立索引,对sort进行索引并检查哪些是duplicated

df.loc[~df[['head','tail']].T.apply(sorted).T.duplicated()]

   head      relation    tail
0   two  DistinctFrom     one
2   two           IsA  number
15  one           IsA  number

关于python - 如何从 Pandas 数据框中删除相互记录?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56076742/

10-12 21:38