从一个函数返回多个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
使用DataFrames
dict
,sheet_names
选择的职位,但需要。减去1
,因为从0
蟒蛇计数:
dfs = {}
for i, val in enumerate(df_names):
dfs[val] = initilize_dataframes(sheet_names[i])
print (dfs[1])
曾任职像一个魅力,谢谢!而字典是我甚至没有考虑过的。辉煌。 – KKobain
@KKobain - 很高兴能帮到你! – jezrael
如果我DataFrames不是整数,而是 'df_names = [ '工作表Sheet1', 'Sheet2中', '表Sheet 3']' – KKobain