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

在Pandas中按tag_id和sub_id分组生成序号并排序DataFrame

解决方案:按指定列排序并生成分组序号

1. 准备示例数据并完成排序

先执行以下代码创建示例DataFrame,并按tag_id和log_date升序排序:

import pandas as pd

dfx = pd.DataFrame({'tag_id': [496976, 496976, 603100, 603100, 715078, 715078, 978924, 978924, 1276120, 1276120, 1276120],
                    'sub_id' :['W00-8748', 'A00-1012', 'A00-4028', 'A00-4028', 'W00-0706', 
                               'W00-1960', 'W00-1066', 'W00-6462', 'W00-1397', 'W00-1427', 'W00-6727'],
                    'log_date':['2012-06-28','2013-06-28','2016-02-18','2016-02-18','2008-02-25','2008-09-28','2008-04-28','2010-10-20','2008-07-10','2008-07-15','2008-07-15']})

# 按tag_id和log_date升序排序,重置索引
dfx = dfx.sort_values(by=['tag_id','log_date'], ascending=True).reset_index(drop=True)

2. 基于tag_id和sub_id生成分组序号

使用groupby()结合ngroup()方法,生成从1开始的分组序号列(命名为group_num):

dfx['group_num'] = dfx.groupby(['tag_id', 'sub_id']).ngroup(start=1)

最终结果

执行上述代码后,DataFrame的输出如下:

tag_idsub_idlog_dategroup_num
0496976W00-87482012-06-281
1496976A00-10122013-06-282
2603100A00-40282016-02-183
3603100A00-40282016-02-183
4715078W00-07062008-02-254
5715078W00-19602008-09-285
6978924W00-10662008-04-286
7978924W00-64622010-10-207
81276120W00-13972008-07-108
91276120W00-14272008-07-159
101276120W00-67272008-07-1510

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 11:01:37