【发布时间】:2018-12-28 11:23:25
【问题描述】:
我有一组功能:
“SalePrice”、“OverallQual”、“GrLivArea”、“GarageCars”、“TotalBsmtSF”、 'GarageArea'、'1stFlrSF'、'FullBath'、'YearBuilt'、'TotRmsAbvGrd'、 'YearRemodAdd'、'GarageYrBlt'、'壁炉'、'MasVnrArea'、'LotArea'、 'LotFrontage'、'BsmtFinSF1'、'OpenPorchSF'、'WoodDeckSF'、'2ndFlrSF'、 'HalfBath'、'BsmtUnfSF'、'BsmtFullBath'
其中 3 个特征包含一些 NaN 值。我想删除具有 NaN 值的行。为此,我运行
for item in features:
train_data[item].dropna(inplace=True)
print(train_data[item].isnull().values.any())
这给出了输出:
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
这让我相信所有的 NaN 值都已成功删除。但是,当我然后运行时
print(train_data[features].isnull().values.any())
输出:
True
我的理解是,通过设置inplace=True,数据框将在当前实例中被操作。但是,当我在运行循环以删除空值后检查 train_data[features] 时,它没有改变。我在这里做错了吗?
【问题讨论】:
-
使用 df=df.dropna(subset=features)
-
@W-B 完美,谢谢!如果您希望我接受,请随时将其写为答案
-
完成了,愉快的编码
标签: python python-3.x pandas