从一个函数返回多个DataFrames与熊猫

问题描述:

我试图解析多个Excel与熊猫张成单独的个体DataFrames。从一个函数返回多个DataFrames与熊猫

到目前为止我的代码是:

sheet_names =[tab1, tab2] 
df_names = [1,2] 

def initilize_dataframes(sheet_names): 
    for name in sheet_names: 
     df = xls_file.parse(name) #parse the xlxs sheet 
     df = df.transpose() #transpose dates to index 
     new_header = df.iloc[0] #column header names 
     df = df[1:] #drop 1st row 
     df.rename(columns=new_header, inplace= True) #rename the columns 
    return df` 
` 
for i in df_names: 
    df_(i) = initilize_dataframes(sheet_names)#something like this idk 

最后两行,我不能绕到我的头。我得到该函数将返回df,但我希望它从df_names列表中取值。并相应地标记DataFrame。

例如,在Excel工作表TAB1数据帧应该被命名df_1和分别用于循环和TAB2 df_2。

有可能通过globals

for i, val in enumerate(df_names): 
    globals()['df_' + str(vals)] = initilize_dataframes(sheet_names[i]) 

但更好的是enumerate使用DataFramesdictsheet_names选择的职位,但需要。减去1,因为从0蟒蛇计数:

dfs = {} 
for i, val in enumerate(df_names): 
    dfs[val] = initilize_dataframes(sheet_names[i]) 

print (dfs[1]) 
+0

曾任职像一个魅力,谢谢!而字典是我甚至没有考虑过的。辉煌。 – KKobain

+0

@KKobain - 很高兴能帮到你! – jezrael

+0

如果我DataFrames不是整数,而是 'df_names = [ '工作表Sheet1', 'Sheet2中', '表Sheet 3']' – KKobain