假设我有一个数据列a
,其中包含,b
和c
,我想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并按