【问题标题】:Sklearn's imputer v/s df.fillnan to replace nan values with mean of the columnSklearn impute vs df.fillna 用列的平均值替换 nan 值
【发布时间】:2018-04-17 06:18:35
【问题描述】:

我找到了 2 种方法来替换 python 中的 nan 值, 一个使用 sklearn 的 imputer 类,另一个使用 df.fillnan() 后者似乎很容易用更少的代码。 但效率方面哪个更好。 任何人都可以解释每个的用例吗?

【问题讨论】:

  • 这里要考虑的是你想如何填充未知值。你想用一些随机的固定数字填充它,然后使用fillna()。否则你想用平均值和中位数填充它,那么你需要考虑你想要填充、训练数据、测试或完整数据的平均值或中位数。根据您的选择,您可能会得到不同的结果。

标签: python pandas dataframe scikit-learn


【解决方案1】:

我觉得 imputer 类有其自身的好处,因为您可以简单地提及均值或中值来执行某些操作,这与在 fillna 中需要提供值不同。但是在 imputer 中,您需要拟合和转换数据集,这意味着更多的代码行。但它可能会给你比 fillna 更好的速度,但除非数据集真的很大,否则没关系。

但是 fillna 有一些非常酷的东西。您甚至可以使用有时需要的自定义值来填充 na。恕我直言,这使得 fillna 更好,即使它可能执行得更慢。

【讨论】:

    猜你喜欢
    • 2013-04-01
    • 2013-09-12
    • 2019-03-21
    • 2021-07-16
    • 2013-09-12
    • 2013-01-13
    • 2018-03-16
    相关资源
    最近更新 更多