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

如何在Pandas DataFrame中标记重复行并标注重复组序号

在Pandas DataFrame中为重复行(排除指定列)分配组序号

需求说明

需要在Pandas DataFrame中标记重复行,为每组重复行分配连续序号(如1、2...),判断重复时不纳入id列的考量。

输入示例

idCountryCity
1FranceParis
2FranceParis
3FranceLyon
4FranceLyon
5FranceLyon

解决方案

通过groupby结合ngroup()方法即可实现,无需手动判断重复,直接按非id列分组并分配组序号:

import pandas as pd

# 构造输入DataFrame
df = pd.DataFrame({
    'id': [1, 2, 3, 4, 5],
    'Country': ['France', 'France', 'France', 'France', 'France'],
    'City': ['Paris', 'Paris', 'Lyon', 'Lyon', 'Lyon']
})

# 排除id列,按剩余列分组并分配组序号(从1开始)
df['duplicated_flag'] = df.groupby(df.columns.drop('id').tolist()).ngroup() + 1

输出结果

idCountryCityduplicated_flag
1FranceParis1
2FranceParis1
3FranceLyon2
4FranceLyon2
5FranceLyon2

代码解释

  • df.columns.drop('id').tolist():自动获取除id外的所有列作为分组依据,避免手动列写列名(列数较多时更高效)
  • ngroup():为每个分组分配从0开始的序号,加1后得到从1起始的组编号
  • 同一组内的所有行(即非id列完全相同的行)会获得相同的duplicated_flag值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 14:30:52