python - 如何只修改数字变量python

标签 python pandas machine-learning data-science

我只想修改数据框中的数值变量,即按中位数估算数值变量的缺失值,按众数估算因子变量的缺失值。为了仅修改数字变量,我尝试了以下操作:

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

但是它说:

SyntaxError: can't assign to function call

事实上,这个解决方案刚刚奏效,但我对此并不满意,因为它不涉及赋值操作('=')。此外,这是一个“私有(private)方法”(即一个实现细节),将来可能会发生变化或完全删除。 answer here 建议谨慎使用:

xTrain._get_numeric_data().fillna(xTrain.mean(), inplace=True)

是否有其他方法可以只选择数字列并将它们归入整个数据,这意味着只修改数据框的一部分?提前致谢!

最佳答案

您可以使用 DataFrame.select_dtypes 获取所有列, 所以分配 working nice:

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

关于python - 如何只修改数字变量python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56754588/

相关文章:

python - Scipy imsave 使我的图像变暗

python - 使用 tensorflow 进行增量模型训练

python - 如何使用 Seaborn 修改 Violinplot 的边缘颜色

scala - 我的特征列在数据框中变为空

python - 如何在使用 Scikit-Learn 创建 ROC 曲线时使用预测分数

python - 从许多 panda 数据框中选择第一天

python - Pandas 旋转一列,同时使用相同的列值作为列标题

python - 从日期中删除前导零和尾随零

python - 使用来自 pandas DataFrame 的数据拟合 sklearn 的 SVM 分类器

machine-learning - 神经网络如何计算权重之和?