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

如何在Pandas中基于两列生成分组自增的唯一标识列

实现方案

1. Python(Pandas,效率最优,适合大数据量)

直接使用Pandas原生向量化分组计数方法,无循环开销,千万级数据量下也能保持极高处理效率:

import pandas as pd

# 假设df为你的原始数据集
df['unique_id'] = df.groupby(['column_1', 'column_2']).cumcount() + 1

cumcount()会按原始表的行顺序,在每个column_1+column_2分组内从0开始计数,加1后即可得到你需要的从1开始的序列值。

2. SQL实现

如果数据存储在关系型数据库中,直接使用窗口函数即可:

SELECT 
    column_1,
    column_2,
    ROW_NUMBER() OVER (PARTITION BY column_1, column_2 ORDER BY (SELECT 1)) AS unique_id
FROM your_table;

ORDER BY (SELECT 1)是为了兼容要求窗口函数必须带排序规则的数据库(如SQL Server),如果使用MySQL 8.0+、PostgreSQL等支持省略排序规则的数据库,可直接去掉该段,保留原始表的行顺序。

3. R实现

使用dplyr包的分组行计数方法:

library(dplyr)

df <- df %>%
  group_by(column_1, column_2) %>%
  mutate(unique_id = row_number()) %>%
  ungroup()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 21:36:04