如何在 pandas 中按多列排序(附示例)


您可以使用以下基本语法按多列对 pandas DataFrame 进行排序:

 df = df. sort_values ([' column1 ', ' column2 '], ascending=( False , True ))

以下示例展示了如何在实践中使用此语法。

示例:在 Pandas 中按多列排序

假设我们有以下 pandas DataFrame:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' points ': [14, 20, 9, 20, 25, 29, 20, 25],
                   ' assists ': [5, 7, 7, 9, 12, 9, 9, 4],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]})

#view DataFrame
df

        points assists rebounds
0 14 5 11
1 20 7 8
2 9 7 10
3 20 9 6
4 25 12 6
5 29 9 5
6 20 9 9
7 25 4 12

我们可以使用以下语法通过增加然后减少通道来对 DataFrame 的行进行排序

 #sort by points ascending, then assists ascending
df = df. sort_values ([' points ', ' assists '])

#view updated DataFrame
df

	points assists rebounds
2 9 7 10
0 14 5 11
1 20 7 8
3 20 9 6
6 20 9 9
7 25 4 12
4 25 12 6
5 29 9 5

请注意,这些行是按升序(从小到大)排序的,然后是升序遍历

我们还可以使用ascending参数来指定是否对每列进行升序或降序排序:

 #sort by points descending, then assists ascending
df = df. sort_values ([' points ', ' assists '], ascending = ( False , True )))

#view updated DataFrame
df

        points assists rebounds
5 29 9 5
7 25 4 12
4 25 12 6
1 20 7 8
3 20 9 6
6 20 9 9
0 14 5 11
2 9 7 10

请注意,这些行按降序(从最大到最小)排序,然后按升序排列

在这些示例中,我们按两列对 DataFrame 进行排序,但我们可以使用这种精确的语法按我们想要的任意数量的列进行排序。

注意:您可以在此处找到 pandas sort_values()函数的完整文档。

其他资源

以下教程解释了如何在 pandas 中执行其他常见操作:

Pandas:如何按日期排序
Pandas:如何按名称对列进行排序
Pandas:如何按索引和列排序

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注