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

如何按一列分组、组内排序后再按指定规则排序?(营养数据实例)

食品营养成分按重量优先级排序实现方法

需求回顾

需要将食品营养成分数据按总重量从大到小排序,规则如下:

  • 先按单位分组,优先级为 g > mg > ug
  • 同一单位组内,按含量(amount)从大到小排序

方法一:Excel 实现

  1. 添加单位优先级辅助列
    在数据旁新增一列,根据单位赋值:g填3,mg填2,ug填1(数值越大优先级越高)
  2. 设置排序规则
    选中所有数据区域,点击「数据」选项卡 →「排序」:
    • 主要关键字选辅助列,排序依据选「数值」,次序选「降序」
    • 点击「添加条件」,次要关键字选amount列,排序依据选「数值」,次序选「降序」
  3. 完成排序
    确认设置后即可完成排序,辅助列可按需删除

方法二:Python(Pandas)实现

假设数据已读取为DataFrame格式,代码示例如下:

import pandas as pd

# 读取数据(示例,实际根据数据源调整)
df = pd.read_excel("营养成分数据.xlsx")

# 定义单位优先级映射
unit_priority_map = {"g": 3, "mg": 2, "ug": 1}
# 添加优先级列
df["unit_priority"] = df["unit_name"].map(unit_priority_map)

# 按规则排序:先按优先级降序,再按含量降序
sorted_df = df.sort_values(by=["unit_priority", "amount"], ascending=[False, False])

# 可选:删除辅助列并重置索引
sorted_df = sorted_df.drop("unit_priority", axis=1).reset_index(drop=True)

# 输出或保存排序后的数据
print(sorted_df)
# sorted_df.to_excel("排序后营养成分数据.xlsx", index=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 03:23:08