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

如何用Pandas按A、B分组并添加Group_id标签?

解决方案

你可以用以下两种常见方法实现需求:

方法1:使用groupby + ngroup()

利用pandas的分组功能,按A、B列分组后,通过ngroup()生成组序号(默认从0开始),加1即可得到从1起始的Group_id:

import pandas as pd

# 构造原始DataFrame
df = pd.DataFrame({
    'A': ['A-1', 'A-2', 'A-2', 'A-3'],
    'B': ['B-1', 'B-2', 'B-2', 'B-4'],
    'C': ['C-1', 'C-2', 'C-3', 'C-4']
})

# 添加Group_id
df['Group_id'] = df.groupby(['A', 'B']).ngroup() + 1

print(df)

输出结果:

A    B    C  Group_id
0  A-1  B-1  C-1         1
1  A-2  B-2  C-2         2
2  A-2  B-2  C-3         2
3  A-3  B-4  C-4         3

方法2:使用factorize

将A、B列的组合转换为唯一标识,通过pd.factorize生成组id,同样加1调整起始值:

import pandas as pd

df = pd.DataFrame({
    'A': ['A-1', 'A-2', 'A-2', 'A-3'],
    'B': ['B-1', 'B-2', 'B-2', 'B-4'],
    'C': ['C-1', 'C-2', 'C-3', 'C-4']
})

# 合并A、B列生成唯一键,再生成Group_id
df['Group_id'] = pd.factorize(df[['A', 'B']].apply(tuple, axis=1))[0] + 1

print(df)

输出结果和方法1完全一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 22:21:34