pandas读取excel文件并获取Excel文件下所有的sheet名称

通过DataFrame.keys获取excel文件的sheet_name

如下代码所示,导入pandas模块,并读取excel文件,打印前5行查看数据:

import pandas as pd
df = pd.read_excel('test.xlsx')
#获取文件前五行数据
df.head()

在这里插入图片描述
想要使用DataFrame.keys()打印当前excel文件的所有sheet_name,结果运行代码之后却获取到了excel文件第一个sheet的列索引值

print(df.keys())
#运行结果为:
#Index(['编号', '年龄', '性别', '注册时间'], dtype='object')

解决方法:
经过各种查资料,发现默认情况下read_excel()会读取第一个sheet,且获取到的keys是第一行的值,如果想要读取到所有的sheet,需要在读取文件excel文件的时候加参数:sheet_name=None

如下代码所示:

import pandas as pd
df = pd.read_excel('test.xlsx',sheet_name=None)
# df.head() 
# 此时运行df.head()会报错:AttributeError: 'dict' object has no attribute 'head'
#因为加sheet_name=None之后读取到的df对象的数据是包含所有sheet的字典
#其中key为sheet_name,value为对应sheet表的内容,如下图所示
print(df)

在这里插入图片描述
此时打印的keys值则为excel文件的所有sheet_name:

print(df.keys())
#运行结果:dict_keys(['Sheet1', 'Sheet2', 'Sheet3'])

df['Sheet1'].head()
#运行df[sheet_name].head()则可以预览对应的sheet表的数据

在这里插入图片描述
本文参考链接:https://blog.csdn.net/shykevin/article/details/111244839

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐