多张纸的Pandas read_excel在每张纸上返回相同的nb_rows

时间:2018-02-26 09:07:18

标签: python-3.x pandas

我有一个包含多张相同结构的Excel文件。 行数因每张表而异,但pd.read_excel()会返回df nb_rows == nb_rows on the first sheet。 我用CTRL+down检查了Excel工作表 - 工作表中间没有空行。 我该如何解决这个问题?

示例代码如下:

import pandas as pd
xls_sheets = ['01', '02', '03']
fname = 'C:\\data\\data.xlsx'
xls = pd.ExcelFile(fname)
for sheet in xls_sheets:
    df = pd.read_excel(io=xls, sheet_name=sheet)
    print(len(df))

输出:

>> 4043  #Actual nb_rows = 4043
>> 4043  #Actual nb_rows = 11015
>> 4043  #Actual nb_rows = 5622

python 3.5,pandas 0.20.1

2 个答案:

答案 0 :(得分:0)

如果是,请检查xls_sheets列表中表单的名称是否正确,然后在安装xlrd库/模块(pip install xlrd)后尝试,然后再次运行代码。因为对我来说它运作正常。希望这能帮到你!

答案 1 :(得分:0)

鉴于问题的信息有限,并假设您想阅读Excel文件中的所有表格,我建议您使用以下内容:

data=pd.read_excel('excelfile.xlsx', sheet_name=None)

data是一个字典,其中的键是工作表名称,值是每张工作表中的数据。请尝试这种方法。它可以解决您的问题。