使用Python导入 - 将多个excel文件导入数据帧

时间:2017-09-13 19:35:32

标签: python pandas dictionary dataframe

我想遍历一个目录并查找特定的xlsx文件,然后将它们分别放入单独的pandas数据帧中。这里的事情是我还希望这些excel文件中的所有工作表都在数据框中。

下面是我实现的代码示例,我只需要添加逻辑来选择所有工作表:

import pandas as pd
from glob import glob

path = 'path_to_file'

files = glob(path + '/*file*.xlsx')

get_df = lambda f: pd.read_excel(f)

dodf = {f: get_df(f) for f in files}

dodf[files[2]] --- dictionary of dataframes 

1 个答案:

答案 0 :(得分:1)

如Pandas中的this answer所述,您仍然可以访问ExcelFile类,该类会加载创建对象的文件。

此对象具有.sheet_names属性,该属性为您提供当前文件中的工作表名称列表。

xl = pd.ExcelFile('foo.xls')
xl.sheet_names  # list of all sheet names

要实际处理特定工作表的导入,请在导入的Excel文件的对象上使用.parse(sheet_name)

xl.parse(sheet_name)  # read a specific sheet to DataFrame

您的代码类似于:

get_df = lambda f: pd.ExcelFile(f)
dodf = {f: get_df(f) for f in files}

...为您dodf提供ExcelFile个对象的字典。

filename = 'yourfilehere.xlsx'
a_valid_sheet = dodf[filename].sheet_names[0] # First sheet
df = dodf[filename].parse(sheet_name)