我知道如何根据列数据删除重复的行。我也知道如何根据行索引删除重复行。我的问题是:有没有一种方法可以基于索引和一列删除重复的行?
谢谢!
答案 0 :(得分:1)
这可以通过将索引变成一列来完成。
下面是一个示例数据集(仅供参考,我认为有人不赞成您的问题,因为它不包含示例数据集):
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])
输出:
a b
0 1 2
1 2 2
1 2 2
2 3 3
3 4 4
5 4 5
5 5 5
然后您可以使用以下行。第一个reset_index()创建一个带有索引号的新列。然后,您可以基于新的索引列和另一列(在本例中为b)删除重复项。然后,您可以使用set_index('index')将索引设置为原始索引值:
df.reset_index().drop_duplicates(subset=['index','b']).set_index('index')
输出:
a b
index
0 1 2
1 2 2
2 3 3
3 4 4
5 4 5