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

如何基于DataFrame中BX与BY的重复组合创建ID列?

给DataFrame添加基于多列唯一组合的ID列

原始DataFrame

BXBY
112
112
112
214
214
35

实现方法

你可以用以下两种简洁方式为BX和BY的唯一组合生成连续ID:

方法一:使用factorize

将BX和BY合并为元组后,用factorize生成编码,最后加1让ID从1开始:

import pandas as pd

df = pd.DataFrame({
    'BX': [1,1,1,2,2,3],
    'BY': [12,12,12,14,14,5]
})

# 生成ID列
df['ID'] = pd.factorize(df[['BX', 'BY']].apply(tuple, axis=1))[0] + 1

方法二:使用groupby + ngroup

按BX和BY分组后,用ngroup为每个组分配编号,同样加1调整起始值:

df['ID'] = df.groupby(['BX', 'BY']).ngroup() + 1

最终结果

执行上述任意一种方法后,DataFrame会变成:

BXBYID
1121
1121
1121
2142
2142
353

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 13:40:41