Python如何筛选DataFrame中不含NULL和空值的行,剔除无效空行
错误原因
你写的代码中,df[~df['Col 1'].isnull()] 返回的是过滤后完整的DataFrame对象(包含所有列,行数为过滤掉空值后的行数),而等号左侧是单个Col 1列,二者维度完全不匹配,因此触发赋值数量不符的报错。
正确解决方案
你要实现的是删除Col 1为空的整行数据,直接对整个DataFrame做过滤赋值即可:
df = df[df['Col 1'].notna()]
这里的notna()是pandas内置的非空判断方法,等价于~df['Col 1'].isnull(),写法更简洁直观。
如果需要保留原DataFrame不变,只生成过滤后的新对象,可以单独赋值给新变量:
df_filtered = df[df['Col 1'].notna()]
运行后即可得到你预期的输出结果,所有Col 1为NaN的行都会被直接删除。
内容的提问来源于stack exchange,提问作者Manz
相关产品推荐
相关产品推荐

