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

如何按多列匹配条件对DataFrame分组并为同组打统一标签

Pandas DataFrame分组打标签实现方案

直接使用Pandas原生分组方法即可实现需求,代码逻辑如下:

import pandas as pd
# 假设你的原始数据存放在df变量中
# 1. 定义用于分组匹配的字段
match_cols = ['l_name', 'f_name', 'city_state', 'zip']
# 2. 筛选出行数>=2的分组,给符合条件的分组分配从1开始的递增标签
valid_group_tags = df.groupby(match_cols)\
                     .filter(lambda x: len(x) >= 2)\
                     .groupby(match_cols)\
                     .ngroup() + 1
# 3. 将标签映射回原表,无匹配分组自动填充为0
df['tag'] = df.set_index(match_cols).index.map(valid_group_tags).fillna(0).astype(int)

逻辑说明

  • 先按指定4个字段分组,过滤掉只有1行的分组,剩下的都是需要打标签的有效分组
  • 用ngroup()方法给有效分组分配从0开始的编号,加1后就从1开始计数
  • 把标签映射回原DataFrame时,没有匹配到的分组(即只有1行的分组)会得到NaN值,填充为0即可符合要求
  • 整个过程基于Pandas原生接口实现,不需要自定义循环,处理百万级数据也能保持较好性能

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 15:57:00