pandas中ExcelFile对象调用dropna()报无属性错误如何解决
报错原因
pd.ExcelFile() 返回的是Excel文件解析对象,作用是便捷读取同一Excel文件内的多个工作表,本身不是存储结构化表格数据的DataFrame对象,不存在dropna()方法,直接对该对象调用dropna()就会触发属性不存在的报错。
修复方案
要实现删除全空列的需求,需要先将Excel中的工作表解析为DataFrame对象,再调用dropna()方法执行空值删除操作,注意删除全空列需要指定两个参数:
how='all':仅当整行/整列全为空值时才执行删除axis=1:指定按列维度判断空值(默认axis=0是按行判断)
写法1:沿用原有ExcelFile逻辑(适合需要读取多工作表的场景)
import pandas as pd xlsx_file = pd.ExcelFile("1.xlsx") print(xlsx_file.sheet_names) # 解析工作表为DataFrame,默认读取第一个工作表,可传sheet_name参数指定表名/序号 df = xlsx_file.parse() # 删除全空列 newdf = df.dropna(how='all', axis=1)
写法2:直接读取为DataFrame(适合仅需读取单个工作表的场景)
如果不需要操作同一个文件里的多个工作表,可以直接用pd.read_excel()读取,代码更简洁:
import pandas as pd # 直接读取Excel文件第一个工作表为DataFrame df = pd.read_excel("1.xlsx") newdf = df.dropna(how='all', axis=1)
如果需要处理文件内所有工作表的全空列,遍历
sheet_names逐个解析、执行空列删除即可。
内容的提问来源于stack exchange,提问作者Mounesh
相关产品推荐
相关产品推荐

