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

分析pandas中nunique_counts原实现与简化版的差异及NaN影响

原函数的实际作用分析

核心逻辑拆解

原实现的两步流程等价于以下逻辑:

  1. 自动过滤掉c列值为NaN的所有行(pandas的groupby会默认排除分组键中包含NaN的行)
  2. 对过滤后的数据集,按['a','b','c']分组统计行数(这一步的count列属于中间产物,不影响最终唯一值统计结果)
  3. 基于上述已排除c为NaN行的分组结果,按a列统计目标col的唯一值数量

与简化版的差异原因

简化版df.groupby('a')[col].nunique()的逻辑是:

  • 对所有行(包含c列值为NaN的行)直接按a分组,统计col的唯一值数量

因为原实现提前排除了c为NaN的行,若这些被排除的行中存在col的新值(即未在c非NaN行中出现过的值),就会导致简化版统计的唯一值数量≥原实现的结果。

等价代码还原

原函数的实际作用可以用以下代码准确还原:

# 先过滤c列非NaN的行
filtered_df = df[df['c'].notna()]
# 按a分组统计col的唯一值数量
original_result = filtered_df.groupby('a')[col].nunique()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 19:47:06