按两列或多列对Pandas数据框架进行排序,可以通过sort_values()方法来实现。 sort_values()方法根据一列或多列的值进行排序。 接下来,我将介绍如何在Pandas中使用sort_values()方法对数据框进行排序。
1. 按一列排序
考虑以下数据框:
import pandas as pd
data = {
'name': ['Jerry', 'Tony', 'Tom', 'Jake', 'Mike'],
'age': [28, 26, 27, 25, 28],
'score': [85, 90, 87, 92, 89]
}
df = pd.DataFrame(data)
排序的关键在于要确定按哪一列排序。 下面我们按照年龄进行排序:
df_sorted = df.sort_values('age')
print(df_sorted)
输出结果如下:
name age score
3 Jake 25 92
1 Tony 26 90
2 Tom 27 87
0 Jerry 28 85
4 Mike 28 89
可以看到,数据框已经按照年龄从小到大排序。
2. 按多列排序
有时候需要按多列进行排序。在Pandas中,可以通过将多个列名传递给sort_values()方法来指定多列排序。 下面我们将按照名字和年龄进行排序:
df_sorted = df.sort_values(['name', 'age'])
print(df_sorted)
输出结果如下:
name age score
0 Jerry 28 85
3 Jake 25 92
4 Mike 28 89
1 Tony 26 90
2 Tom 27 87
可以看到,数据框先按照名字进行排序,然后在相同名字的情况下按照年龄进行排序。
我们可以通过传递ascending=False的参数来实现降序排序。 下面我们将按照年龄和成绩进行降序排序:
df_sorted = df.sort_values(['age', 'score'], ascending=False)
print(df_sorted)
输出结果如下:
name age score
1 Tony 26 90
2 Tom 27 87
4 Mike 28 89
0 Jerry 28 85
3 Jake 25 92
可以看到,数据框按照年龄进行降序排序,然后在相同年龄的情况下按照成绩进行降序排序。
在sort_values()方法中指定多个列排序时,可以为每个列指定不同的排序顺序。 下面我们将按照名字和成绩排序,其中名字按照升序排列,成绩按照降序排列:
df_sorted = df.sort_values(['name', 'score'], ascending=[True, False])
print(df_sorted)
输出结果如下:
name age score
0 Jerry 28 85
4 Mike 28 89
3 Jake 25 92
1 Tony 26 90
2 Tom 27 87
可以看到,数据框按照名字按照升序排列,然后在相同名字的情况下按照成绩进行降序排序。
这就是按两列或多列对Pandas数据框架进行排序的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:按两列或多列对Pandas数据框架进行排序 - Python技术站