Pandas读取指定Excel工作表返回字典而非DataFrame,如何解决?
解决AttributeError: 'dict' object has no attribute 'head'问题
问题原因
当你给pd.read_excel()的sheet_name参数传入列表(哪怕只有一个元素)时,函数会返回一个字典——键是工作表名称,值是对应工作表的DataFrame对象。你直接对这个字典调用head()方法(这是DataFrame的专属方法),就会触发该错误。
两种解决方法
方法一:直接指定单个工作表(推荐,适合只读取一个表的场景)
将sheet_name的参数从列表改为字符串:import pandas as pd import numpy as np df = pd.read_excel("VMS.xlsx", sheet_name='PS VMs', usecols=['Name']) df.head()方法二:从返回的字典中提取DataFrame(适合需要读取多个表的场景)
如果后续可能需要读取多个工作表,保留列表参数,再从返回的字典中取出目标表对应的DataFrame:import pandas as pd import numpy as np # 返回值是字典,键为工作表名称 df_dict = pd.read_excel("VMS.xlsx", sheet_name=['PS VMs'], usecols=['Name']) # 通过表名从字典中提取对应的DataFrame df = df_dict['PS VMs'] df.head()
内容的提问来源于stack exchange,提问作者Behseini
相关产品推荐
相关产品推荐

