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

如何在pandas中对单行的列按值排序并保留对应列标签

实现方案

1. Python pandas 实现

适用于数据分析场景,代码逻辑简单直观:

import pandas as pd

# 构造原始表格数据
df = pd.DataFrame(
    [[0.1, 0.2, 0, 0.7, 0.22, 0.11]],
    columns=['A','B','C','D','E','F']
)

# 列标签和对应数值配对后按数值降序排序
sorted_pairs = sorted(zip(df.columns, df.iloc[0]), key=lambda x: x[1], reverse=True)
# 提取排序后的列顺序
sorted_cols = [i[0] for i in sorted_pairs]
# 生成排序后的新表格
df_sorted = df[sorted_cols]

# 输出验证
print(df_sorted)

2. Excel 实现

适合非代码场景的手动操作:

  • 将原表格的表头和对应数值拆成两列:第一列存列标签A/B/C/D/E/F,第二列存对应数值
  • 选中两列数据,按第二列的数值做降序排序
  • 把排序后的第一列作为新表头、第二列作为数据行,重新拼成表格即可

3. 原生JavaScript实现

适合前端场景直接修改HTML表格:

// 获取原始表格元素
const table = document.querySelector('.s-table')
// 提取表头和对应数值
const headers = Array.from(table.querySelectorAll('thead th')).map(th => th.textContent)
const values = Array.from(table.querySelectorAll('tbody td')).map(td => parseFloat(td.textContent))

// 标签数值配对后按数值降序排序
const sortedPairs = headers.map((h, idx) => [h, values[idx]]).sort((a, b) => b[1] - a[1])

// 重新渲染表格
table.querySelector('thead tr').innerHTML = sortedPairs.map(i => `<th>${i[0]}</th>`).join('')
table.querySelector('tbody tr').innerHTML = sortedPairs.map(i => `<td>${i[1]}</td>`).join('')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 16:30:01