【问题标题】:Pandas dataframe .dropna() is not dropping NaN valuesPandas 数据框 .dropna() 没有丢弃 NaN 值
【发布时间】: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


【解决方案1】:

IIUC

df=df.dropna(subset=features)

【讨论】:

  • 特征的类型应该是什么?我有一列带有 nan 的数据框
  • @FabioSpaghettiF features 是列列表,在您的情况下为 df.dropna(subset=['col'])
  • @FabioSpaghetti yw :-) 快乐编码
猜你喜欢
  • 2019-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-08
  • 1970-01-01
相关资源
最近更新 更多