首页 > 解决方案 > 如何对熊猫数据框进行排序,以便首先在列中显示冗余值?

问题描述

我有一个熊猫数据框,其中有一列“test_id”

test_id
      2
      5
      1
      3
      3
      3
      4
      4
      4
      2
      9

我想对数据框进行排序,使该列为:

test_id
      3
      3
      3
      4
      4
      4
      2
      2
      1
      5
      9

请帮忙。谢谢!

标签: pythonpandasdataframe

解决方案


这是一个如何使用辅助列的示例,您可以在之后删除该列:

import pandas as pd

df = pd.DataFrame({'test_id': [2, 5, 1, 3, 3, 3, 4, 4, 2, 9],
                   'other_column': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]})


df['tbd'] = df.groupby(['test_id']).transform('count')

df.sort_values(['tbd', 'test_id'], inplace=True, ascending=(False, True))

del df['tbd']

df

   other_column  test_id
3             4        3
4             5        3
5             6        3
0             1        2
8             9        2
6             7        4
7             8        4
2             3        1
1             2        5
9            10        9

推荐阅读