df/Series .sort_values(by=‘xx‘, ascending=False)
·
对 DataFrame 或 Series 按照指定列的值进行升序或降序排列。
一、基本语法
DataFrame.sort_values(
by, # 指定排序的列名(或列名列表,多列排序)
ascending=True, # 是否升序:True(默认,升序)、False(降序)
inplace=False, # 是否原地修改:True(不返回新对象)、False(返回新对象,默认)
ignore_index=False # 排序后是否重置索引:True(索引从0开始)、False(保留原索引,默认)
)
二、常用示例
假设我们有如下 DataFrame:
data = {
'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 20, 30, 20],
'score': [85, 90, 75, 90]
}
df = pd.DataFrame(data)
| name | age | score | |
|---|---|---|---|
| 0 | Alice | 25 | 85 |
| 1 | Bob | 20 | 90 |
| 2 | Charlie | 30 | 75 |
| 3 | David | 20 | 90 |
1. 按单列排序(默认升序)
按 age 列升序排列(从小到大):
# 按 age 升序
df_sorted = df.sort_values(by='age')
print(df_sorted)
name age score
1 Bob 20 90
3 David 20 90
0 Alice 25 85
2 Charlie 30 75
2. 按单列降序排序
按 score 列降序排列(从大到小):
# 按 score 降序
df_sorted = df.sort_values(by='score', ascending=False)
print(df_sorted)
name age score
1 Bob 20 90
3 David 20 90
0 Alice 25 85
2 Charlie 30 75
3. 按多列排序
先按 age 升序,age 相同则按 score 降序:
# 多列排序:先按 age 升序,再按 score 降序
df_sorted = df.sort_values(by=['age', 'score'], ascending=[True, False])
print(df_sorted)
name age score
1 Bob 20 90
3 David 20 90 # age相同,score也相同,顺序不变
0 Alice 25 85
2 Charlie 30 75
4. 排序后重置索引(常用)
排序后默认保留原索引,用 ignore_index=True 重置为连续索引:
df_sorted = df.sort_values(by='age', ignore_index=True)
print(df_sorted)
name age score
0 Bob 20 90 # 新索引从0开始
1 David 20 90
2 Alice 25 85
3 Charlie 30 75
5. 原地修改 DataFrame(inplace=True )
用 inplace=True 直接修改原 DataFrame(不返回新对象):
df.sort_values(by='age', inplace=True)
print(df) # 原 df 已被修改
三、关键参数说明
by:核心参数,指定排序的列名(单列用字符串,多列用列表)。ascending:控制排序方向,默认True(升序);多列排序时可传入布尔值列表(与by中的列一一对应)。ignore_index:排序后索引可能混乱,设为True可重置为0,1,2...,方便后续按位置访问。inplace:默认False(返回新对象,不修改原数据),建议保持默认,避免意外修改原始数据。
总结
按列排序的核心是 sort_values(by=列名),通过调整 ascending 控制升降序,多列排序时传入列名列表即可。
昇腾计算产业是基于昇腾系列(HUAWEI Ascend)处理器和基础软件构建的全栈 AI计算基础设施、行业应用及服务,https://devpress.csdn.net/organization/setting/general/146749包括昇腾系列处理器、系列硬件、CANN、AI计算框架、应用使能、开发工具链、管理运维工具、行业应用及服务等全产业链
更多推荐

所有评论(0)