首页 > 解决方案 > 读取多个电子表格 - 来自中央电子表格的文件路径

问题描述

我正在尝试将多个(数百个)电子表格加载到一个数据框中。问题是这些电子表格位于不同的文件夹/路径中。我希望遍历列出所有特定路径的中央电子表格(每个电子表格都包含一个我希望拉出的名为“测试”的选项卡,此选项卡在所有电子表格中具有相同的结构/布局)但我有一些问题.

我在下面列出了所有可能有用的东西,任何见解将不胜感激!

现有代码问题

当前代码

df_0 = pd.read_excel(r'PATH TO CENTRAL SPREADSHEET')
list_of_paths = df_0['Path'].tolist()

all_data = pd.DataFrame()
for itr in range(len(list_of_paths)):
    df = pd.read_excel(list_of_paths[itr], sheet_name="Test", ignore_index=True)
    cdf = pd.concat(df.values)
    all_data = all_data.append(cdf,ignore_index=True)

中央电子表格

Identifier    Path
AAPL          PATH TO UNDERLYING AAPL FILE
GOOG          PATH TO UNDERLYING GOOG FILE

基础文件(“测试”选项卡)结构示例

Metric   2018    2017
Revenue  2mm     3mm
Expense  1mm     2mm

期望的输出

Metric    Ticker    2018    2017
Revenue   AAPL      2mm     3mm
Revenue   GOOG      5mm     8mm
Expense   AAPL      1mm     2mm
Expense   GOOG      4mm     6mm

标签: pythonexcelpandas

解决方案


分步骤进行:

目标:将电子表格加载到 df 列表中

df_0 = pd.read_excel(r'PATH TO CENTRAL SPREADSHEET')
dict_of_paths = {}
for i,j in df_0.iterrows():
     dict_of_paths[j['Identifier']] = j['Path'] 

df_list = []
for key in dict_of_paths.keys():
    df = pd.read_excel(dict_of_paths[key], sheet_name="Test")
    df['ticker'] = key
    df_list.append(df)

现在所有的df都在df_list中

mdf = pd.concat(df_list,ignore_index=True)

只要列相同。这应该有效。


推荐阅读