我有一个包含很多图纸的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...
但是我不想手动操作,而是想循环执行或类似操作
答案 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是第三个数据帧,等等。