python - 如何只修改数字变量python
问题描述
我只想修改数据框中的数字变量,即按中位数估算数字变量的缺失值,按模式估算因子变量的缺失值。要仅修改数字变量,我尝试了以下操作:
xTrain.select_dtypes(include=numerics) = xTrain.select_dtypes(include=numerics).fillna(xTrain.mean(), inplace=True)
但它说:
SyntaxError:无法分配给函数调用
事实上,这个解决方案很有效,但我对它不满意,因为它不涉及赋值操作('=')。此外,这是一种“私有方法”(即实现细节),将来可能会发生变化或完全删除。建议通过此处的回答谨慎使用:
xTrain._get_numeric_data().fillna(xTrain.mean(), inplace=True)
是否在考虑是否有其他方法可以仅选择数字列并将它们归入整个数据,这意味着仅修改数据框的一部分?提前致谢!
解决方案
您可以使用 获得所有列DataFrame.select_dtypes
,因此分配工作得很好:
xTrain = pd.DataFrame({'address':['a', 'b', 'c'],'b':[1,2, np.nan]})
print (xTrain)
address b
0 a 1.0
1 b 2.0
2 c NaN
cols = xTrain.select_dtypes(include=np.number).columns
xTrain[cols] = xTrain[cols].fillna(xTrain.mean())
print (xTrain)
address b
0 a 1.0
1 b 2.0
2 c 1.5
推荐阅读
- apache-flink - flink key 通过添加延迟;我怎样才能减少这种延迟?
- java - 多个 JPanel 未在背景前打印
- wordpress - 使用 wordpress 发送电子邮件
- sql - 如何测试表中的所有行是否重复(一列除外)
- java - “我无法正确捕获 NumberFormatException,因此我的 onClick 无法正常工作
- c# - 控件数据绑定时,无法在 DataGridView 中以编程方式添加行
- python-3.x - 绘制日期和货币并将日期转换为可读格式
- r - 将json文件转换为R中的数据框
- python - 为什么我只能得到索引 0 的正确回报
- python - 从列表中访问模型实例的属性并将它们添加在一起?