将Excel中的所有表格导入到不同的数据框中

时间:2019-06-26 08:45:40

标签: python excel pandas dataframe

我有一个包含很多图纸的Excel文件。我想将每个工作表保存在一个数据框中。例如:

df1 = pd.read_excel('Test.XLS', sheet_name = 'sheet1', skiprows = 3)[:-1]
df2 = pd.read_excel('Test.XLS', sheet_name = 'sheet2', skiprows = 3)[:-1]
...
and so on...

但是我不想手动操作,而是想循环执行或类似操作

4 个答案:

答案 0 :(得分:0)

您可以将数据框保存在列表中,并在页数上循环。例如,如果您有10张纸

df_list=[]

for i in range(1,11):
    df_list.append(pd.read_excel('Test.XLS', sheet_name = 'sheet'+str(i), skiprows = 3)[:-1])

如果无法知道张数,则可以使用try-except

df_list=[]
i = 1
while True:
    try:
        df_list.append(pd.read_excel('Test.XLS', sheet_name = 'sheet'+str(i), skiprows = 3)[:-1])
        i+=1
    except:
        break

答案 1 :(得分:0)

这将读取所有工作表并将它们放入字典(工作簿)中,其中的键是工作表名称,值是数据框。

workbook = pd.read_excel('Test.XLS', sheet_name = None, skiprows = 3)

答案 2 :(得分:0)

RTFM!

read_excel的文档说:

  

sheet_name:str,int,list或None,默认为0
...
          无:所有工作表。

您可以这样做:

dfx = pd.read_excel('Test.XLS', sheet_name = None, skiprows = 3)

,您将获得一个以工作表名称为索引的所有工作表的字典。

答案 3 :(得分:0)

这将满足您的要求。

import pandas as pd
xls = pd.ExcelFile('read_sheets.xlsx')
sheets = xls.sheet_names # get the sheets from the excel file
sheet_names = list(sheets)#store the sheets names into list
for i in range(len(sheet_names)):
    globals()['df_'+sheet_names[i]] = pd.read_excel('read_sheets.xlsx', sheet_name = sheets[i])

df_Sheet1是第一个数据帧

df_Sheet2是第二个数据帧

df_Sheet3是第三个数据帧,等等。