Pandas dropna()函数失效求助:无法删除DataFrame中的NA行
解决Pandas dropna()函数未生效的问题
哈哈,我之前也踩过这个坑!咱们来一步步搞定它:
最常见的原因:忘记修改原DataFrame
dropna() 默认不会修改原DataFrame,而是返回一个删除了NA行的新对象。如果你只是调用prison_data.dropna()但没把结果存回去,原数据根本不会变!
解决办法二选一:
- 把返回的新DataFrame赋值给原变量:
prison_data = prison_data.dropna() - 用
inplace=True参数原地修改原数据:prison_data.dropna(inplace=True)
如果你只想删除特定列有NA的行
你测试的是out_custody列的NA,但默认dropna()会删除任意一列有NA的行。如果你的需求是只删除out_custody列有缺失的行,得指定subset参数:
# 只删除out_custody列含NA的行 prison_data = prison_data.dropna(subset=['out_custody'])
先确认缺失值分布(排查必备)
先跑个命令看看各列到底有多少NA值,避免白忙活:
# 打印每列的缺失值数量 print(prison_data.isna().sum()) # 验证处理后是否还有NA print(prison_data['out_custody'].isna().sum())
按照上面的步骤来,应该就能成功删掉NA行啦!
内容的提问来源于stack exchange,提问作者Gilgamesh Skytrooper
相关产品推荐
相关产品推荐

