You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Pandas:如何对DataFrame排序时排除TOTAL行

解决方法:排除'TOTAL'行后排序,再保留总计行在末尾

没问题,要实现只对非'TOTAL'的行排序,同时让总计行固定在最后,可以通过筛选+排序+合并的方式处理,具体代码和效果如下:

import pandas as pd

columns=['NAME', 'AB', 'H']
df = pd.DataFrame(
    [['Harper', '10', '5'], ['Trout', '10', '5'], ['Ohtani', '10', '5'], ['TOTAL', '30', '15']],
    columns=columns
)

# 筛选非TOTAL的行并按NAME排序
sorted_non_total = df[df['NAME'] != 'TOTAL'].sort_values(by='NAME')
# 单独提取TOTAL行
total_row = df[df['NAME'] == 'TOTAL']
# 合并排序后的行和总计行,重置索引避免混乱
df1 = pd.concat([sorted_non_total, total_row], ignore_index=True)

print(df1)

运行这段代码后,输出结果为:

NAME  AB   H
0  Harper  10   5
1  Ohtani  10   5
2   Trout  10   5
3   TOTAL  30  15

逻辑说明

  • 先通过df['NAME'] != 'TOTAL'筛选出所有非总计行,对这部分行按NAME列排序;
  • 单独提取NAME为'TOTAL'的行,确保它不会参与排序;
  • 用pd.concat()将排序后的非总计行和总计行合并,ignore_index=True用来重置合并后的索引,避免原索引混乱。

这样就完美实现了你想要的排序效果!

内容的提问来源于stack exchange,提问作者shintaro202020

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:28:09