如何在 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 中执行其他常见操作: