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

在Pandas DataFrame中识别重复项并分配相似索引

基于指定列识别重复行并分配统一索引

先看你的示例数据集:

import pandas as pd

# Sample DataFrame with duplicate rows
data = {'A': [1, 2, 1, 3, 1, 2, 3, 2],
        'B': [4, 5, 4, 6, 4, 5, 6, 5],
        'C': [1, 2, 3, 4, 5, 6, 7, 8]}
df = pd.DataFrame(data)

要实现仅依据A、B列识别重复项,并给每组重复行分配相同自定义索引的需求,可用以下两种方法:

方法一:使用groupby.ngroup()

直接对A、B列分组,自动给每个组分配从0开始的连续索引:

# 基于A、B列分组,生成组索引
df['custom_index'] = df.groupby(['A', 'B']).ngroup()

# 可选:将自定义索引设为DataFrame的行索引
df = df.set_index('custom_index')

运行后结果完全匹配需求:

  • (A=1,B=4)的行(原行0、2、4)分配索引0
  • (A=2,B=5)的行(原行1、5、7)分配索引1
  • (A=3,B=6)的行(原行3、6)分配索引2

方法二:使用pd.factorize()

先提取A、B列的组合值,再生成唯一标识:

# 合并A、B列生成组合键,再生成索引
combined_key = df[['A', 'B']].apply(tuple, axis=1)
df['custom_index'] = pd.factorize(combined_key)[0]

# 可选:设置为行索引
df = df.set_index('custom_index')

两种方法效果一致,都能精准识别A、B列的重复组并分配统一索引。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 10:15:03