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

如何移除Pandas分组结果中的NaN及多余类别?

问题原因

diamonds数据集的cut列是分类(Categorical)数据类型,这类数据会预先固定所有可能的类别选项。你过滤数据只是筛选出了符合条件的行,但原始的分类类别集合并没有被修改,所以分组时依然会列出所有原始类别,没有对应数据的类别自然就返回NaN。

解决方法

有三种常用的处理方式:

方法1:分组时添加observed=True参数

直接在groupby里指定该参数,只保留有实际数据的类别:

ideal_good.groupby("cut", observed=True)["price"].mean()

方法2:清理分类列中未使用的类别

先对cut列移除没有数据的类别,再执行分组:

ideal_good["cut"] = ideal_good["cut"].cat.remove_unused_categories()
ideal_good.groupby("cut")["price"].mean()

方法3:将分类列转为普通字符串类型

把cut列转换为字符串类型,这样就不会保留原始的分类集合:

ideal_good["cut"] = ideal_good["cut"].astype(str)
ideal_good.groupby("cut")["price"].mean()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 07:45:37