【问题标题】:Impute mean of single column in dask-ml在 dask-ml 中估算单列的平均值
【发布时间】:2021-04-01 06:44:58
【问题描述】:

在更改所有 np.nan 的列时,使用 dask-ml 计算和估算平均值可以正常工作:

imputer = impute.SimpleImputer(strategy='mean')
data = [[100, 2], [np.nan, np.nan], [70, 7]]
df = pd.DataFrame(data, columns = ['Weight', 'Age']) 
x3 = imputer.fit_transform(df)
print(x3)

    Weight  Age
 0  100.0   2.0
 1  85.0    4.5
 2  70.0    7.0

但是如果我需要保持Age 不变呢?是否可以指定要估算的列?

【问题讨论】:

    标签: python machine-learning dask dask-ml


    【解决方案1】:

    您应该能够通过以下方式指定列 df.Weight = imputer.fit_transform(df.Weight) 或通过索引列df.loc["Weight"]

    【讨论】:

    • 能否提供完整代码?我收到Expected 2D array, got 1D array instead
    • 它必须有二维数组,我将代码转换为 iloc 但你仍然可以通过重塑来使用 loc。 df.iloc[:, 0:1] = imputer.fit_transform(df.iloc[:,0:1])
    • 这行得通。作为附加评论,可以选择iloc 中的任意数量的列来计算平均值,而不仅仅是一个或一系列列。
    • 如果我理解正确,那肯定是可能的。要选择第 0 列、第 1 列和第 2 列,您可以执行以下操作:df.iloc[:, [0, 1, 2]]
    猜你喜欢
    • 2019-09-04
    • 1970-01-01
    • 2018-09-03
    • 2020-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-23
    • 1970-01-01
    相关资源
    最近更新 更多