我有一组功能:
“ SalePrice”,“ OverallQual”,“ GrLivArea”,“ GarageCars”,“ TotalBsmtSF”, 'GarageArea','1stFlrSF','FullBath','YearBuilt','TotRmsAbvGrd', 'YearRemodAdd','GarageYrBlt','Fireplaces','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]
时,它没有变化。我在这里做错什么了吗?
答案 0 :(得分:3)
IIUC
df=df.dropna(subset=features)