
高效处理循环中生成的多个DataFrame
在Python函数中,如果循环操作产生多个DataFrame,直接返回它们需要巧妙的技巧。本文将演示如何利用列表高效地收集和返回这些DataFrame。
假设函数peak_search_recipe内含一个循环,每次迭代都生成一个dfpeakall DataFrame。为了在函数外部访问这些DataFrame,我们可以创建一个列表来存储它们:
def peak_search_recipe(df, wavelengthavgcol, peaksearchdir, recipelist, infocol):
# ... (代码略)
dfpeakall_list = [] # 创建空列表存储DataFrame
for recipe in recipelist:
# ... (代码略)
dfpeakall = pd.concat([dfpeakv, wavefull], axis=1)
dfpeakall_list.append(dfpeakall) # 将生成的DataFrame添加到列表
return dfpeakall_list # 返回包含所有DataFrame的列表
此方法避免了不必要的嵌套列表,使代码更简洁易读。
立即学习“Python免费学习笔记(深入)”;
在函数调用方,可以直接遍历返回的列表访问每个DataFrame:
result = peak_search_recipe(df, WavelengthAvgCol, peaksearchdir, recipeList, infoCol)
for i, dfPeakAll in enumerate(result):
# 使用 dfPeakAll 数据框,i为索引
print(f"DataFrame {i+1}:")
print(dfPeakAll.head()) # 例如,打印每个DataFrame的前几行
这种方式清晰地组织了多个DataFrame的返回,方便后续处理和分析。 使用enumerate函数还可以方便地获取每个DataFrame的索引。










