从excel加载数据并附加所有工作表

时间:2015-11-26 06:50:51

标签: python pandas

我从Excel工作表中加载了15张纸,它创建了dataFrames的字典,其中工作表编号为关键字。有没有办法在加载时实际附加15张,或者我必须迭代键来附加15个DataFrame?

我的意思是在加载时指定附加而不是创建字典?

df = pd.read_excel(r"E:\user_ratings.xlsx",sheetname=range(1,16),skiprows=28,
                                       header=None,parse_cols="D:H")

df.head()
AttributeError: 'dict' object has no attribute 'head'

df.keys()
Out[113]: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]

如果列出键1的值,它会为我提供表1的dataFrame。

df[1]
Out[114]: 
EVE01201                  ......

2 个答案:

答案 0 :(得分:0)

如果查看read_excel docs,sheetname参数似乎只提供返回数据框Dict的选项,其中键代表工作表。我能看到的唯一方法是修改pandas使用的excel.py文件(excel.py使用xlrd)。

但是使用pd.concat简单地连接数据帧可能要简单得多

答案 1 :(得分:0)

据我所知,使用ExcelFile,它将简单如下:

import pandas as pd
df = pd.DataFrame()
input_excel = pd.ExcelFile(path/file.xlsx)  

#iterate over each sheet in the file and parse it  

for sheet in input_excel.sheet_names:
    input_sheet = input_excel.parse(sheet,headers = True)  
    df.append(input_sheet)

sheet_names是获取所有工作表名称的属性。