我正在尝试将多个(数百个)电子表格加载到一个数据框中。问题在于这些电子表格位于不同的文件夹/路径中。我希望遍历列出所有特定路径的中央电子表格(每个电子表格都包含一个我希望提取的名为“ Test”的选项卡,该选项卡在所有电子表格中的结构/布局均相同),但是存在一些问题
我在下面列出了可能有帮助的所有内容,任何见解将不胜感激!
现有代码问题:
当前代码:
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
答案 0 :(得分:0)
分步进行:
目标:将电子表格加载到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)
只要列相同即可。这应该起作用。