删除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()