pandas.read_excel 参数“sheet_name”不起作用

Posted

技术标签:

【中文标题】pandas.read_excel 参数“sheet_name”不起作用【英文标题】:pandas.read_excel parameter "sheet_name" not working 【发布时间】:2018-06-07 03:15:24 【问题描述】:

根据pandas doc for 0.21+,pandas.read_excel 有一个参数sheet_name,允许指定读取哪个工作表。但是当我试图从 excel 文件中读取第二张表时,无论我如何设置参数(sheet_name = 1sheet_name = 'Sheet2'),数据框始终显示第一张表,并传递索引列表(sheet_name = [0, 1] ) 不返回数据框字典,但仍然是第一张表。这里可能有什么问题?

【问题讨论】:

我遇到了同样的问题,升级到 0.21 后解决了 【参考方案1】:

在终端尝试,首先键入以下内容,然后重新运行您的程序: pip install xlrd

【讨论】:

【参考方案2】:

这行得通:

df = pd.read_excel(open(file_path_name), 'rb'), sheetname = sheet_name)

file_path_name = your file
sheet_name = your sheet name

这不适合我:

df = pd.read_excel(open(file_path_name), 'rb'), sheet_name = sheet_name)

无论我如何定义 sheet_name,只给我第一张表。

--> 这是一个已知错误: https://github.com/pandas-dev/pandas/issues/17107

【讨论】:

【参考方案3】:

看起来您使用的是旧版本的 Python。 所以试着改变你的代码

df = pd.read_excel(file_with_data, sheetname=sheet_with_data)

它应该可以正常工作。

【讨论】:

检查您的 pandas 版本 pd.__version__ 如果 .21 或更新版本,请使用 sheet_name 关键字参数。如果是旧版本,请使用sheetname pandas.read_excel【参考方案4】:

你可以尝试使用pd.ExcelFile:

xls = pd.ExcelFile('path_to_file.xls')
df1 = pd.read_excel(xls, 'Sheet1')
df2 = pd.read_excel(xls, 'Sheet2')

【讨论】:

以上是关于pandas.read_excel 参数“sheet_name”不起作用的主要内容,如果未能解决你的问题,请参考以下文章

pandas.read_excel参数“sheet_name”无法正常工作,,将sheet_name改写成sheetname

通过 pandas.read_excel 在标题后跳过行范围

pandas.read_excel,第一行值

Pandas操作excel

无法使用 pandas.read_excel 访问 .xlsx 文件中的数据

IOError: [Errno 22] 使用 pandas.read_excel 的无效模式 ('rb')