python - Pandas:根据产品类型将零值和 NAN 值替换为均值列
问题描述
我想用列 Mean 替换零和 NAN 值,但是,我希望代码对与产品类型(AB 或 C)相关的平均值进行分类
总而言之,我有一个共有 4 列的 pandas 数据框。其中一列指定 3 种产品类型之一:A、B 和 C。
每行有 3 个测量列。我想将每列的 0 和 NAN 值替换为与产品类型相关的列平均值。如下表:
因此,我想编写一个允许软件计算以下内容的语法:
产品 A 各列测量值 1,2 和 3 的平均值
产品 B 各列测量值 1,2 和 3 的平均值
产品 C 各列测量值 1,2 和 3 的平均值
对于这样的操作,我们可以使用以下代码行:
df.fillna(df.mean(), inplace=True)
但是,这假定均值适用于列中的所有值,而不适用于另一列中定义的类别(这里是产品类型类别 A、B 和 C)
非常感谢您对此的帮助。谢谢
解决方案
让我们transform
尝试groupby
df.fillna(df.groupby('PRODUCT TYPE').transform('mean'), inplace=True)
推荐阅读
- satellite - 我想在地图上显示陆地卫星图像(网络应用程序)
- rust - 如何在 Actix-Web 中为多种方法使用路由属性宏
- google-sheets - Google 表格导入多个 HTML 表格图像
- sql - postgres 在 JSON 数组中提取多个值
- c# - 从动态对象列表中删除对象
- .net - 如何在特定级别的文件夹和子文件夹中搜索“文件夹”
- javascript - 为什么每次触发事件时这个数组都没有保存推送的元素?
- ruby-on-rails - 找不到 heroku.com 页面 - 应用程序是 rails api
- python - 带有大量空值的 Pandas astype() 速度极慢?
- c++ - 班级模板中隐藏的朋友模板