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

如何基于列总和对表格除指定列外的列进行无名称引用排序

基于列总和排序表格列(适配任意列数)

需求说明

对表格中除“同意/不同意”列外的其他列,按列总和从小到大排序,始终保留“同意/不同意”列在最左侧,且方法需适配任意数量的列。预期排序结果:同意/不同意、问题B(总和5)、问题C(总和6)、问题A(总和9)。


通用实现方案(以Python Pandas为例)

Pandas可实现无硬编码列名的通用排序,适配任意列数:

import pandas as pd

# 1. 加载表格数据(示例为模拟数据,实际可从CSV/Excel导入)
data = {
    "同意/不同意": ["非常同意", "同意", "中立", "不同意", "非常不同意"],
    "问题A": [5, 6, 1, -2, -1],
    "问题B": [1, 3, 3, 0, -2],
    "问题C": [2, 2, 3, 0, -1]
}
df = pd.DataFrame(data)

# 2. 获取除第一列外的所有目标列(无需硬编码列名)
target_cols = df.columns[1:]

# 3. 按列总和从小到大排序目标列
# sum()计算各列总和,argsort()获取排序后的索引,以此重排列名
sorted_target_cols = target_cols[df[target_cols].sum().argsort()]

# 4. 重新排列表格列:固定第一列 + 排序后的目标列
sorted_df = df[[df.columns[0]] + sorted_target_cols.tolist()]

# 输出结果
print(sorted_df)

代码解释

  • df.columns[1:]:自动获取除第一列外的所有列,无论列数多少都能适配
  • df[target_cols].sum().argsort():计算目标列的总和,再获取总和从小到大的索引位置,用该索引对列名排序
  • [[df.columns[0]] + sorted_target_cols.tolist()]:固定保留第一列,后面拼接排序后的目标列,得到最终列顺序

输出结果

同意/不同意问题B问题C问题A
非常同意125
同意326
中立331
不同意00-2
非常不同意-2-1-1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 01:41:17