[d2l]section 2.2

发布于 2023-07-12  557 次阅读


Problem 1

在2.2.2处理缺失值部分,以下代码运行时,会报如下错误:

inputs, outputs = data.iloc[:, 0:2], data.iloc[:, 2]
inputs = inputs.fillna(inputs.mean())
print(inputs)

[d2l]section 2.2

原因:新版环境,inputs.mean()是对NumRooms和Alley两列操作,需要筛选

解决办法:

  1. 对inputs进行限制,将代码修改为如下所示:
    inputs, outputs = data.iloc[:, 0:2], data.iloc[:, 2]
    inputs = inputs.fillna(inputs.select_dtypes(include='number').mean())
    print(inputs)
  2. 对mean进行限制,将代码修改为如下所示:
    inputs, outputs = data.iloc[:, 0:2], data.iloc[:, 2]
    inputs = inputs.fillna(inputs.mean(skipna=True, numeric_only=True))
    print(inputs)

Problem 2

在2.2.2处理缺失值部分,由于Pytorch 2.0的原因,导致get_dummies()函数的输出发生变化,如下图所示:
[d2l]section 2.2
此时结果从0、1变为了True、False
为了后续代码的正常运行,需要将代码改为如下所示:

inputs = pd.get_dummies(inputs, dummy_na=True, dtype=int)
print(inputs)

此时结果可以如网站中所示。