当前位置: 首页 > 面试题库 >

如何按两列或更多列对python pandas中的dataFrame进行排序?

洪飞龙
2023-03-14
问题内容

假设我有一个数据列a,其中包含,bc,我想b按升序按列对数据帧进行排序,然后按c降序按列对数据帧进行排序,我该怎么做?


问题答案:

从0.17.0版开始,sort不推荐使用该方法,而推荐使用sort_values。 sort在0.20.0版本中被完全删除。参数(和结果)保持不变:

df.sort_values(['a', 'b'], ascending=[True, False])

你可以使用的升序参数sort:

df.sort(['a', 'b'], ascending=[True, False])

例如:

In [11]: df1 = pd.DataFrame(np.random.randint(1, 5, (10,2)), columns=['a','b'])

In [12]: df1.sort(['a', 'b'], ascending=[True, False])
Out[12]:
   a  b
2  1  4
7  1  3
1  1  2
3  1  2
4  3  2
6  4  4
0  4  3
9  4  3
5  4  1
8  4  1

如@renadeen所评论

默认情况下,排序不正确!因此,你应该将sort方法的结果分配给变量,或者将inplace = True添加到方法调用中。

也就是说,如果你想将df1用作已排序的DataFrame

df1 = df1.sort(['a', 'b'], ascending=[True, False])

要么

df1.sort(['a', 'b'], ascending=[True, False], inplace=True)


 类似资料:
  • 假设我有一个包含列,和的数据帧,我想按升序按列排序,按降序按列排序,如何我要这么做吗?

  • 我有一个pandas数据帧(df),我需要根据列值的计数对其进行排序。列的值是字符串。 例如,目标列的值为橙色、苹果色、香蕉色和桃色。单个计数(df['fruit'].value_counts())为: 香蕉2678 桃2250 橙色1765 苹果1691 结果我需要根据这些计数对初始数据帧(包括所有列等)进行排序。因此,在前2678行中,水果列中的值应为香蕉等

  • 如您所见,月份不按日历顺序排列。所以我创建了第二列来获取每个月(1-12)对应的月份号。从那里,我如何根据日历月份的顺序对此数据帧进行排序?

  • 问题内容: 我有一个从排序的csv创建的以下列表 我实际上想按两个条件对列表进行排序:首先按字段1中的值,然后按字段2中的值。我该怎么做? 问题答案: 像这样:

  • 问题内容: 我有一个SQLite表,其格式如下: 学生列中有学生姓名,其他列中有描述各个科目的分数的数值。我想为每个学生找到的是他们学科的排名。例如,对于该行, 我想要的输出是 这是每个学生的全部5门科目的排名。输出不必采用我显示的格式。我只需要一个输出,指示每个学生每个学科的排名。如何在SQLite中实现它? 我发现了RANK和ROW_NUMBER,但不了解如何将它们用于多列。 问题答案: 我的

  • 问题内容: 如何按两列对CSV文件进行排序?现在,我可以按一列对其进行排序。我需要按前两列对其进行排序。怎么做?这是我用来按其第一列进行排序的代码: 编辑:两列排序后的输出变为: 我需要这样的输出: 但是,我希望第三列显示当前在第三列中显示的值中X的最小值,然后显示Y的最小值,然后显示Z。 问题答案: 尽管创建类作为 域的 适当表示通常是一个好主意:在这种情况下,我 不同意 注释。 读取CSV并按