Python Pandas 按重复行排序 DataFrame

0 投票
1 回答
1819 浏览
提问于 2025-04-18 09:30

有没有什么好的方法可以查看DataFrame中哪些行是重复的,并且把这些重复的行排在一起显示在最上面?我知道可以用 df.duplicated() 或者类似的 df[df.duplicated()==True] 来筛选出重复的行,但我需要生成一个包含重复行的DataFrame,然后再对它们进行排序,以便在DataFrame中显示所有相关的记录。而且我不需要使用列子集的参数。谢谢!

1 个回答

1

一个想法是对所有的列进行排序。不过,我不太确定这样做的效率怎么样。

In [20]: df = pd.DataFrame (np.random.randint (100,size=(3,3)), columns= list('ABC'))

In [21]: df = df.append(df, ignore_index=True)

In [22]: df
Out[22]: 
    A   B   C
0  23  71  65
1  63   0  47
2  47  13  44
3  23  71  65
4  63   0  47
5  47  13  44

In [23]: df.sort(df.columns.tolist())
Out[23]: 
    A   B   C
0  23  71  65
3  23  71  65
2  47  13  44
5  47  13  44
1  63   0  47
4  63   0  47

撰写回答