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

如何在Pandas的groupby操作中统计文本列的不同字符串数量?

解决Pandas分组后文本列统计不同字符串数量的问题

你可以用lambda 函数替代直接传入'nunique'字符串的方式,确保对文本列正确统计不同字符串的数量,同时保持对列'd'的求和逻辑不变:

df = df.groupby('a').agg(
    b=('b', lambda x: x.nunique()),
    c=('c', lambda x: x.nunique()),
    d=('d', 'sum')
).reset_index()

如果还是存在问题,大概率是文本列包含空值(如NaN、None)或混合数据类型,你可以先做数据清理:

  • 统一列的数据类型为字符串:df['b'] = df['b'].astype(str)
  • 过滤空值:df = df.dropna(subset=['b', 'c'])

如果需要统计包含空值在内的所有不同值,可给nunique()添加dropna=False参数:

df = df.groupby('a').agg(
    b=('b', lambda x: x.nunique(dropna=False)),
    c=('c', lambda x: x.nunique(dropna=False)),
    d=('d', 'sum')
).reset_index()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 16:03:15