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

如何在Python中为GENUS与SPECIES列的唯一组合分配唯一值?

为GENUS和SPECIES的唯一组合添加唯一编号列

可以用以下两种简洁的方法实现需求,基于pandas操作:

方法1:使用factorize()生成唯一编号

factorize()能直接对多列组合生成连续的唯一整数标识,适合快速生成ID:

import pandas as pd

# 为GENUS和SPECIES的组合创建唯一编号列(编号从1开始)
dffossil['SPECIES_UNIQUE_ID'] = pd.factorize(dffossil[['GENUS', 'SPECIES']].apply(tuple, axis=1))[0] + 1

说明:将GENUS和SPECIES两列转为元组后,factorize()会为每个唯一元组分配一个初始从0开始的整数,+1是让编号从1起步,更符合常规使用习惯。

方法2:使用groupby().ngroup()分组编号

如果需要按分组的顺序生成ID,ngroup()是更直观的选择:

# 按GENUS和SPECIES分组后生成唯一编号
dffossil['SPECIES_UNIQUE_ID'] = dffossil.groupby(['GENUS', 'SPECIES']).ngroup() + 1

说明:groupby()会先将相同GENUS+SPECIES的行归为一组,ngroup()为每个组分配唯一整数ID,同样+1调整起始编号。

注意事项

  • 数据中的None值会被当作有效组合的一部分,比如(None, None)或单独含None的组合都会被分配独立的唯一ID;
  • 如果你已经基于drop_duplicates()得到了去重后的DataFrame,直接在该数据上执行上述代码即可,同样能得到每个唯一组合的专属编号。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 19:33:26