【问题标题】:Imputing categorical data with python用python输入分类数据
【发布时间】:2018-12-21 11:27:12
【问题描述】:

有没有办法用该值所属的分类类型的平均值来估算缺失值。例如,如果我有 50 个独特的产品,它们创建了 1000 个样本,其中一个特征是重量。我可以用产品“a”的重量平均值估算产品“a”的重量,用产品“c”的重量平均值估算产品“c”的重量吗?

【问题讨论】:

  • 是的,这是明智之举。您还可以使用在面对异常值时更加稳健的中位数。
  • 如果您的数据分布范围非常大,您可以考虑使用中位数。根据情况,模态类也可能是有效的。您还可以证明从“a”随机抽样并在每个需要插补的值处插入值

标签: python dataframe machine-learning


【解决方案1】:

如果你使用的是 pandas,你可以试试这样:

import pandas as pd
import numpy as np

df = pd.DataFrame({
    "category": ["a", "a", "a", "a", "b", "b", "b", "b"],
    "weight": [1.0, 1.0, np.nan, 2.0, np.nan, 3.0, 3.0, 3.0]
})
print df

df["weight"].fillna(df.groupby("category")["weight"].transform("median"), inplace=True)
print df

原始数据框:

  category  weight
0        a     1.0
1        a     1.0
2        a     NaN
3        a     2.0
4        b     NaN
5        b     3.0
6        b     3.0
7        b     3.0

结果:

  category  weight
0        a     1.0
1        a     1.0
2        a     1.0
3        a     2.0
4        b     3.0
5        b     3.0
6        b     3.0
7        b     3.0

【讨论】:

    猜你喜欢
    • 2020-09-20
    • 2018-03-09
    • 2015-12-31
    • 1970-01-01
    • 2021-01-26
    • 2013-08-06
    • 2020-08-15
    • 2016-10-16
    • 2018-01-21
    相关资源
    最近更新 更多