python - 使用 Pandas 从函数返回多个 DataFrame

标签 python excel pandas dataframe

我正在尝试使用 Pandas 将多个 Excel 工作表解析为单独的数据帧。

到目前为止我的代码是:

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,DataFrame应该命名为df_1,分别循环tab2和df_2。

最佳答案

globals 是可能的:

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

但更好的是使用 DataFramesdictsheet_namesenumerate 中按位置选择,但需要减去 1,因为python从0开始计数:

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

print (dfs[1])

关于python - 使用 Pandas 从函数返回多个 DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45319422/

相关文章:

python - 如何将具有多个标题的 CSV 文件读取到 pandas 中的两个 DataFrame 中,一个包含标题,另一个包含删除了一些标题的数据?

python - Django 新的 syncdb super 用户在 pycharm 中崩溃

Python 根据第一列中的键合并两列

python - 捕获数字列的新列中是否存在 NA

pandas - 如何在同一个 jupyter notebook cell 中显示多个 pandas 系列直方图?

python - Pandas : how to get the unique number of values in cells when cells contain lists?

python - 我的循环只保存最后一次迭代的结果

python - 按两列对 Pandas Dataframe 进行排序,其中一列值按顺序重复

sql - CASE in WHERE 子句 SQL VBA Excel

excel - 如何在 customUI 功能区中显示版本号