如何用数据的均值替换训练和测试的缺失值
How to replace the missing values of train and test with mean of the data
我已经对数据集进行了预处理,将分类值转换为虚拟值并将某些列转换为浮点数,我已经执行了 train_test_split 现在我想用列的平均值替换缺失值但是单独
边注-
但是它没有添加到测试数据中,我们必须单独拥有测试数据吗?,讲师告诉我我必须分别估算训练和测试数据,但是当我估算 [=25 的缺失值时=] 到 test_data,那么这是否意味着我只是用火车的平均值替换测试的缺失值,这意味着我污染了我的 test_data 这不是我们应该对待的好做法test_data 作为未来的绝对值。这对我来说没有意义,为什么我们将训练数据的平均值归因于测试数据,这是否意味着将训练数据添加到测试数据。
如果我们不能使用测试数据,为什么我们用训练数据集的平均值替换测试数据的缺失值
我想知道
替换训练和测试缺失值的语法是什么,因为我收到此代码的错误
for col in ld_train.columns():
if ld_train[col].isnull().sum()>0:
ld_train.loc[ld_train[col].isnull(),col] = ld_train[col].mean()
for col in ld_test.columns():
if ld_test[col].isnull().sum()>0:
ld_test.loc[ld_test[col].isnull(),col] = ld_train[col].mean()
错误-
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-82-b844a1a6af73> in <module>
1 for col in x_train:
----> 2 x_train[col] = x_train[col].fillna(x_train[col].mean())
3
4 for col in x_test.columns.value:
5 x_test[col] = x_train[col].fillna(x_train[col].mean())
IndexError: arrays used as indices must be of integer (or boolean) type
您的错误是因为您尝试调用不可调用的 train.columns()
,请尝试在 for
循环中使用 train.columns
,它可能会正常工作。
您可以使用 pandas
库来做同样的事情。
使用代码:
ld_train.fillna(ld_train.mean())
我已经对数据集进行了预处理,将分类值转换为虚拟值并将某些列转换为浮点数,我已经执行了 train_test_split 现在我想用列的平均值替换缺失值但是单独
边注-
但是它没有添加到测试数据中,我们必须单独拥有测试数据吗?,讲师告诉我我必须分别估算训练和测试数据,但是当我估算 [=25 的缺失值时=] 到 test_data,那么这是否意味着我只是用火车的平均值替换测试的缺失值,这意味着我污染了我的 test_data 这不是我们应该对待的好做法test_data 作为未来的绝对值。这对我来说没有意义,为什么我们将训练数据的平均值归因于测试数据,这是否意味着将训练数据添加到测试数据。
如果我们不能使用测试数据,为什么我们用训练数据集的平均值替换测试数据的缺失值
我想知道 替换训练和测试缺失值的语法是什么,因为我收到此代码的错误
for col in ld_train.columns():
if ld_train[col].isnull().sum()>0:
ld_train.loc[ld_train[col].isnull(),col] = ld_train[col].mean()
for col in ld_test.columns():
if ld_test[col].isnull().sum()>0:
ld_test.loc[ld_test[col].isnull(),col] = ld_train[col].mean()
错误-
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-82-b844a1a6af73> in <module>
1 for col in x_train:
----> 2 x_train[col] = x_train[col].fillna(x_train[col].mean())
3
4 for col in x_test.columns.value:
5 x_test[col] = x_train[col].fillna(x_train[col].mean())
IndexError: arrays used as indices must be of integer (or boolean) type
您的错误是因为您尝试调用不可调用的 train.columns()
,请尝试在 for
循环中使用 train.columns
,它可能会正常工作。
您可以使用 pandas
库来做同样的事情。
使用代码:
ld_train.fillna(ld_train.mean())