如何仅修改Python中的数值变量

我想仅修改数据框中的数值变量,即通过中位数填补数值变量的缺失值,通过众数填补因子变量的缺失值。为了仅修改数值变量,我尝试了以下方法:

xTrain.select_dtypes(include=numerics) =  xTrain.select_dtypes(include=numerics).fillna(xTrain.mean(), inplace=True)

但它显示:

SyntaxError: can’t assign to function call

事实上,这个解决方案确实有效,但我对此并不满意,因为它不涉及赋值操作(’=’)。此外,这是一个“私有方法”(即实现细节),未来可能会更改或完全删除。在此答案中建议谨慎使用:

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    b0       a  1.01       b  2.02       c  NaNcols = xTrain.select_dtypes(include=np.number).columnsxTrain[cols] = xTrain[cols].fillna(xTrain.mean())print (xTrain)  address    b0       a  1.01       b  2.02       c  1.5

Related Posts

在使用k近邻算法时,有没有办法获取被使用的“邻居”?

我想找到一种方法来确定在我的knn算法中实际使用了哪些…

Theano在Google Colab上无法启用GPU支持

我在尝试使用Theano库训练一个模型。由于我的电脑内…

准确性评分似乎有误

这里是代码: from sklearn.metrics…

Keras Functional API: “错误检查输入时:期望input_1具有4个维度,但得到形状为(X, Y)的数组”

我在尝试使用Keras的fit_generator来训…

如何使用sklearn.datasets.make_classification在指定范围内生成合成数据?

我想为分类问题创建合成数据。我使用了sklearn.d…

如何处理预测时不在训练集中的标签

已关闭。 此问题与编程或软件开发无关。目前不接受回答。…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注