删除Pandas中的部分重复项,该重复项基于的信息最少
我对熊猫还不熟悉,不知道我能不能用它来做些特别的事情。我想删除数据帧的行,这些行在特定列中有部分重复条目 例如,如果有两行,其中一行在给定列中有“疣状菌;门”;第二行在该列中有“疣状菌;门;阿片类”;我想删除第一行 我想从中了解:删除Pandas中的部分重复项,该重复项基于的信息最少,pandas,dataframe,Pandas,Dataframe,我对熊猫还不熟悉,不知道我能不能用它来做些特别的事情。我想删除数据帧的行,这些行在特定列中有部分重复条目 例如,如果有两行,其中一行在给定列中有“疣状菌;门”;第二行在该列中有“疣状菌;门;阿片类”;我想删除第一行 我想从中了解: 0 1 0 Verrucomicrobia;phylum; 10 1 Verrucomicrobia;phylum;Opitutae;class;
0 1
0 Verrucomicrobia;phylum; 10
1 Verrucomicrobia;phylum;Opitutae;class; 5
0 1
0 Verrucomicrobia;phylum; 10
1 Verrucomicrobia;phylum;Opitutae;class; 5
2 Verrucomicrobia;phylum;Opitutae;class;Puniceic... 3
为此:
0 1
0 Verrucomicrobia;phylum;Opitutae;class; 5
0 1
0 Verrucomicrobia;phylum;Opitutae;class;Puniceic... 3
但我并没有寻找唯一的字符串——我只是希望去掉部分重复但信息较少的行。以上就是一个例子
另外,可能有三行,我想用最少的信息去掉这两行
在这种情况下,我想从这里开始:
0 1
0 Verrucomicrobia;phylum; 10
1 Verrucomicrobia;phylum;Opitutae;class; 5
0 1
0 Verrucomicrobia;phylum; 10
1 Verrucomicrobia;phylum;Opitutae;class; 5
2 Verrucomicrobia;phylum;Opitutae;class;Puniceic... 3
为此:
0 1
0 Verrucomicrobia;phylum;Opitutae;class; 5
0 1
0 Verrucomicrobia;phylum;Opitutae;class;Puniceic... 3
带进度条
没有进度条:
输出
0
0 [71, 39]
1 [72, 75, 92]
2 [45, 74]
3 [55, 94, 95, 3]
4 [27, 93, 4, 33, 52]
5 [49, 91, 28, 28, 20]
6 [31, 69]
8 [51, 59, 41, 17]
10 [79, 19, 62]
21 [89, 48, 56, 34]
52 [100, 50]
85 [77, 97]
是的,这是可能的,请发布一些示例数据说明您的请求以及预期输出。添加预期输出,谢谢。如果您不介意为我指出正确的方向,我将不胜感激,即使您不想回答我的问题。谢谢。请注意,如果您有大量数据,这会花费一些时间,因为它会比较for循环中的所有单元格值对,即n(n-1)/2比较,其中n是数据帧的长度。这非常有效,只是它会删除信息最多而不是最少的行。我将尝试找出如何扭转它,但让我知道,如果你知道一个简单的修复。再次感谢。看起来要更改为删除。附加(b)到删除。附加(a)修复了它。啊,抱歉,还有一个问题。我不想删除包含任何相同元素的行,只要它们的所有元素都包含在其他行中。这个密码掉得太多了,我明白了!我使用的是issubset()而不是isdisjoint()