如何将两层嵌套for循环每次迭代的取值存入DataFrame生成目标表格
实现方案
方案1:直接生成笛卡尔积(推荐,无需手动维护循环)
你要的其实是两个列表的笛卡尔积,直接用itertools.product即可快速生成对应结构的数据,一步转DataFrame:
import pandas as pd from itertools import product var1 = [1,2] var2 = [10,20,30] # 生成笛卡尔积直接转DataFrame df = pd.DataFrame(product(var1, var2), columns=["Var1", "Var2"]) # 导出为Excel df.to_excel("output.xlsx", index=False)
运行后生成的DataFrame结构完全符合你给出的表格要求,导出的Excel也会保留该结构。
方案2:按你原本的嵌套循环思路实现
如果需要保留嵌套循环的逻辑(比如后续要在循环里加其他处理逻辑),可以先初始化一个空列表存储每行的结果,循环结束后统一转DataFrame:
import pandas as pd var1 = [1,2] var2 = [10,20,30] result = [] for i in var1: for j in var2: # 每次循环把当前取值追加到结果列表 result.append({"Var1": i, "Var2": j}) # 这里可以加你循环内的其他业务逻辑 # 所有循环结束后统一转DataFrame df = pd.DataFrame(result) # 导出为Excel df.to_excel("output.xlsx", index=False)
注意:不建议在循环中每次都直接对DataFrame做append操作,频繁修改DataFrame结构性能很低,先攒完所有数据再统一生成DataFrame是最优写法。
如果导出时提示缺少依赖,执行pip install openpyxl安装Excel导出依赖即可。
内容的提问来源于stack exchange,提问作者nekovolta
相关产品推荐
相关产品推荐

