You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

循环执行SQL查询批量生成对应名称DataFrame的问题求解

问题原因

你当前的写法是循环中直接对循环变量query赋值,每次迭代都会覆盖上一次的结果,所以最终仅保留最后一次查询的返回值。


推荐方案:使用字典存储查询结果

该方案不会污染全局命名空间,后续批量处理所有查询结果时更便捷,是工业界的通用做法。

queries = ['name1','name2','name3']
# 初始化空字典存储结果,key为查询名,value为对应的DataFrame
df_dict = {}
for query_name in queries:
    df_dict[query_name] = report(query_name)

后续需要取对应查询结果时,直接通过df_dict['name1']、df_dict['name2']即可获取对应DataFrame。


可选方案:生成独立变量(不推荐)

如果确实需要生成name1、name2这类独立的全局变量,可以通过操作全局命名空间实现,但是该方法容易出现命名冲突、调试难度高,非必要不建议使用。

queries = ['name1','name2','name3']
for query_name in queries:
    globals()[query_name] = report(query_name)

执行完成后就可以直接使用name1、name2、name3变量调用对应查询结果。


小优化点

你的report函数中开头初始化df = []是冗余的,后续会被pandas读取的DataFrame覆盖,可以删掉这行。

内容的提问来源于stack exchange,提问作者mhooper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 18:54:03