使用Python导入 - 将多个excel文件导入数据框
我想遍历目录并查找特定的xlsx文件,然后将它们分别放入单独的pandas数据框中。这里的事情是我也希望那些excel文件中的所有工作表都在数据框中。使用Python导入 - 将多个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
如大熊猫在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)
我不想手动输入文件名。有没有办法从我创建的字典dodf中获取它?我对Python完全陌生,所以我不知道它是如何工作的。 –
是的 - 但你需要你改变你的'pd.read_excel(f)'到'pd.ExcelFile(f)'。一旦完成,每个对象将具有'.sheet_names'属性,该属性是该文件中的表单列表。 – mfitzp
是的,我已经做到了。但是,我必须单独将每个表单解析为数据框? –
我已经创建了一个字典来访问每个数据帧。所以目前的方法应该很好,即在字典中。 –