python - 如何从熊猫数据框中删除互惠记录?
问题描述
我有以下形式的熊猫数据框:
head relation tail
0 two DistinctFrom one
2 two IsA number
12 one Antonym two
15 one IsA number
从上面的数据框中,我只想保留一条记录,其中头部实体与尾部实体相同,尾部实体与头部实体相同。例如,从索引为 0 和索引为 12 的记录器中,我想只保留一个,可能是第一个或最后一个,任何事情都可以。
例如,在保留第一次记录后,最终数据帧将如下所示:
head relation tail
0 two DistinctFrom one
2 two IsA number
15 one IsA number
或者
保留最后一条记录时,数据框会像,
头 关系 尾 2 两个 IsA 编号 12 一个 反义词 2 15 一个 IsA 编号
谢谢。
解决方案
为两列创建子集,排序np.sort
以提高性能,创建 DataFrame 并按 withDataFrame.duplicated
过滤boolean indexing
:
df = df[~pd.DataFrame(np.sort(df[['head','tail']], axis=1), index=df.index).duplicated()]
print (df)
head relation tail
0 two DistinctFrom one
2 two IsA number
15 one IsA number
推荐阅读
- excel - Excel UserForm 最重要的重置问题
- java - 如何在魅力报告中获取失败的测试类计数而不是@Test方法失败计数
- java - 等效于 C++ 中的 Java 的 String.getBytes()?
- c - 用 SDL2 编译我的项目得到链接错误
- python - 带有拼写检查的查询分段
- pandas - pandas:快速自定义聚合
- reactjs - Material UI 选择焦点和选择的背景颜色
- javascript - Angular - 带有粘性标题和水平滚动的 MatTable
- python-3.x - 在 Python 中根据长度将一个系列拆分为几列
- android - 无法获取“https://dl.google.com/”