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

Pandas按指定列分组时如何为组内数值生成排序序号列

你可以使用pandas的分组排名功能快速实现需求,具体代码如下:

import pandas as pd

# 示例数据
d = {'hour': [1, 1,2,2], 'value': [10, 50,200,100]}
df = pd.DataFrame(data=d)

# 新增order列:按hour分组后组内按value升序排名
df['order'] = df.groupby('hour')['value'].rank(method='min', ascending=True).astype(int)

执行后输出的df就和你预期的结果完全一致。

参数说明:

  • method='min':遇到相同value时取最小排名,适配有并列值的场景
  • ascending=True:按value从小到大排序,值越小排名序号越小
  • astype(int):将rank方法默认返回的浮点型结果转为整数,符合常规序号的使用习惯

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 12:15:04