如何识别并删除大型数据集中的完全空列?
问题解决方法
你的代码未生效的核心原因是没有将处理后的结果赋值回原DataFrame,replace和dropna默认的inplace=False不会修改原数据,只会返回新的DataFrame。此外还可以简化空值处理逻辑,直接在读取CSV时完成空值识别。
修正后的代码
import pandas as pd # 读取CSV时直接将空字符串识别为NaN Mydataframe = pd.read_csv('Employee_details.csv', na_values=[""]) # 删除所有完全为空的列,将结果赋值回原变量 Mydataframe = Mydataframe.dropna(how='all', axis=1) # 保存处理后的数据 Mydataframe.to_csv(r'output.csv', index=False) # 展示结果 display(Mydataframe)
关键修改点
- 读取CSV时使用
na_values=[""],自动把空字符串转为NaN,省去手动替换的步骤。 - 将
dropna的处理结果赋值给原变量(也可使用inplace=True,但赋值方式更安全,避免原地修改的副作用)。 - 移除了不必要的
numpy导入,pandas自身已具备完整的NaN处理逻辑。
补充说明
如果数据中的空值还有其他形式(比如"NA"、"null"),可以扩展na_values的参数:
Mydataframe = pd.read_csv('Employee_details.csv', na_values=["", "NA", "null"])
内容的提问来源于stack exchange,提问作者Shourya
相关产品推荐
相关产品推荐

