Pandas 删除重复行,包括索引

Bim*_*ons 6 python duplicates dataframe pandas

我知道如何根据列数据删除重复行。我还知道如何根据行索引删除重复行。我的问题是:有没有办法根据索引和一列删除重复行?

谢谢!

小智 6

这可以通过将索引转换为列来完成。

下面是一个示例数据集(仅供参考,我认为有人否决了您的问题,因为它不包含示例数据集):

df=pd.DataFrame({'a':[1,2,2,3,4,4,5], 'b':[2,2,2,3,4,5,5]}, index=[0,1,1,2,3,5,5])
Run Code Online (Sandbox Code Playgroud)

输出:

   a  b
0  1  2
1  2  2
1  2  2
2  3  3
3  4  4
5  4  5
5  5  5
Run Code Online (Sandbox Code Playgroud)

然后您可以使用以下行。第一个 reset_index() 使用索引号创建一个新列。然后,您可以根据新索引列和另一列(本例中为 b)删除重复项。之后,您可以使用 set_index('index') 将索引设置为原始索引值:

df.reset_index().drop_duplicates(subset=['index','b']).set_index('index')
Run Code Online (Sandbox Code Playgroud)

输出:

       a  b
index      
0      1  2
1      2  2
2      3  3
3      4  4
5      4  5
Run Code Online (Sandbox Code Playgroud)