基于Category列重新枚举Sub-Category列内容的实现方法
按Category重新枚举Sub-Category的实现方案
原始数据
先看初始的DataFrame:
import pandas as pd df = pd.DataFrame({'Category':[101,101,101,103,103,103,103], 'Sub-Category':[0,3,4,0,2,4,5]})
输出如下:
Category Sub-Category 0 101 0 1 101 3 2 101 4 3 103 0 4 103 2 5 103 4 6 103 5
需求
需要针对每个Category,将组内的Sub-Category从1开始重新连续枚举,得到如下结果:
Category Sub-Category 0 101 1 1 101 2 2 101 3 3 103 1 4 103 2 5 103 3 6 103 4
实现方法
用pandas的分组计数就能快速实现:
df['Sub-Category'] = df.groupby('Category').cumcount() + 1
原理
groupby('Category'):把相同分类的行归为一组cumcount():对每组内的行从0开始依次计数+1:把计数起点从0改成1,正好匹配需求的枚举方式
内容的提问来源于stack exchange,提问作者user12587364
相关产品推荐
相关产品推荐

