python - 从列中选择的数值的平均值
问题描述
从年龄列中,我想选择(15 和 45 岁)之间的年龄组,然后用年龄组的平均值(15 和 45 岁)替换缺失值
[IN]: train['Age'].isnull().value_counts()
[OUT]:
False 714
True 177
Name: Age, dtype: int64
我该如何编写这段代码?
大多数解决方案都是指基于布尔的输出
train['Age'].fillna((train['Age'] > 15 & train['Age'] < 45).mean())
TypeError: cannot compare a dtyped [float64] array with a scalar of type [bool]
train['Age'].fillna((train['Age'] > 15 & train['Age'] < 45).mean())
年龄组分布在 1 到 80 岁之间 从年龄列我想选择(15 和 45 岁)之间的年龄组,然后用年龄组的平均值(15 和 45 岁)替换缺失值
解决方案
添加括号和loc
列Age
:
m = train.loc[(train['Age'] > 15) & (train['Age'] < 45), 'Age'].mean()
或使用Series.between
:
m = train.loc[train['Age'].between(15, 45, inclusive=False), 'Age'].mean()
最后替换缺失值:
train['Age'] = train['Age'].fillna(m)
推荐阅读
- objective-c - 使用基于变量的属性扩展objective-c中的类
- css - 滑块 ui 在基于铬的浏览器中中断
- java - 无法在java的子模块中使用父模块类
- java - 如何使用杰克逊为地图创建虚拟属性
- internationalization - 如何使用 gatsby-source-strapi-localized
- excel - Excel XML:微软命名空间的 XLST 转换问题?
- javascript - AbstractAction.extend 错误 undefined is not an object (evalating 'el.getBoundingClientRect') odoo
- python - Pygubu 文本小部件计数字符
- r - R中按组划分的因子水平百分比
- linux - Expect 从不检查匹配