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

Pandas按Tag分组根据M_Name唯一值生成Tag_2有效性标签的实现方法

实现思路

你的groupby思路完全正确,核心逻辑就是按Tag分组统计M_Name非空值的唯一计数,再映射回原表即可,这个方案可读性和效率都足够,没有额外优化的必要。

完整实现代码

默认你提到的M_Name空值为NaN或空字符串,先统一处理后即可快速实现需求:

import pandas as pd
import numpy as np

# 第一步:将空字符串统一转为NaN,方便后续统计时自动排除空值
df['M_Name'] = df['M_Name'].replace('', np.nan)

# 第二步:按Tag分组统计非空M_Name的唯一值数量,直接用transform生成新列
df['Tag_2'] = df.groupby('Tag')['M_Name'].transform(
    lambda x: 'Invalid' if x.nunique() > 1 else 'Valid'
)
逻辑说明
  • pandas内置的nunique()方法默认会自动排除NaN值,刚好匹配我们只统计非空不同值的需求
  • transform方法会把分组计算的结果直接广播到对应分组的所有行,不需要额外做值映射,代码更简洁
  • 单表千万行级数据也可以高效运行,没有额外性能损耗

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 02:09:00