如何用Pandas按ITEM分组为Dut列生成连续序号
按ITEM分组生成连续序号填充Dut列
直接用pandas的groupby结合cumcount方法就能实现需求,完整代码如下:
import pandas as pd data = {'ITEM': ['a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'b', 'b', 'b', 'b', 'b'], 'Dut': ['None', 'None', 'None', 'None', 'None', 'None', 'None', 'None', 'None', 'None', 'None', 'None', 'None', 'None'], 'Stat.1': [37, 84, 54, 62, 89, 30, 74, 25, 30, 57, 34, 56, 78, 64]} df = pd.DataFrame(data) # 按ITEM分组生成从1开始的连续序号,替换Dut列 df['Dut'] = df.groupby('ITEM').cumcount() + 1 # 查看处理后的结果 print(df)
代码逻辑说明
df.groupby('ITEM'):将DataFrame按ITEM列的类别分组,把所有ITEM='a'的行归为一组,ITEM='b'的行归为另一组cumcount():为每个分组内的行分配从0开始的连续整数,加1后得到业务场景常用的从1起始的序号- 直接将计算结果赋值给
Dut列,覆盖原来的'None'值
处理后输出示例
ITEM Dut Stat.1 0 a 1 37 1 a 2 84 2 a 3 54 3 a 4 62 4 a 5 89 5 a 6 30 6 a 7 74 7 a 8 25 8 a 9 30 9 b 1 57 10 b 2 34 11 b 3 56 12 b 4 78 13 b 5 64
内容的提问来源于stack exchange,提问作者888Seeme
相关产品推荐
相关产品推荐

