我有一个类似的表:
index name_1 path1 name_2 path2
0 Roy path/to/Roy Anne path/to/Anne
1 Anne path/to/Anne Roy path/to/Roy
2 Hari path/to/Hari Wili path/to/Wili
3 Wili path/to/Wili Hari path/to/Hari
4 Miko path/to/miko Lin path/to/lin
5 Miko path/to/miko Dan path/to/dan
6 Lin path/to/lin Miko path/to/miko
7 Lin path/to/lin Dan path/to/dan
8 Dan path/to/dan Miko path/to/miko
9 Dan path/to/dan Lin path/to/lin
...
如你所见,表格显示了实体之间的关系-
国王和安妮在一起
威利和哈里
林和丹还有美子。
该表实际上显示了重叠数据,这意味着,例如,Hari和wili具有相同的文档,我想删除其中一个,以避免重复文件。为了做到这一点,我想创建一个新的表,只有一个名称的关系,所以我可以稍后创建路径列表删除。
结果表如下所示:
index name_1 path1 name_2 path2
0 Roy path/to/Roy Anne path/to/Anne
1 Hari path/to/Hari Wili path/to/Wili
2 Miko path/to/miko Lin path/to/lin
3 Miko path/to/miko Dan path/to/dan
这个想法是,我将使用“path 2”的值来删除具有此路径的文件,并且仍然具有path 1中的文件。因此,这一行:
4 Lin path/to/lin Dan path/to/dan
因为它将被删除使用Miko...有什么办法吗:)
编辑:
我已经尝试过基于t his answer:
df_2= df[~pd.DataFrame(np.sort(df.values,axis=1)).duplicated()]
的确,我在dataframe中得到的行数更少(它有695行,我现在得到了402行),但是,我仍然有这样的第一行:
index name_1 path1 name_2 path2
0 Roy path/to/Roy Anne path/to/Anne
1 Anne path/to/Anne Roy path/to/Roy
...
也就是说我还是会遇到同样的问题
1条答案
按热度按时间6vl6ewon1#
您可以使用
frozenset
来检测重复项:输出: