如何在含try-except的for循环中统一追加DataFrame(含异常空表)
实现方案
完全可以通过try-except实现需求,核心思路是每个查询无论成功或失败,都生成对应的DataFrame(成功时是提取的表,失败时是空表),然后统一追加到总DataFrame中。不需要依赖finally块,简化后的代码逻辑如下:
import pandas as pd # 初始化总DataFrame total_df = pd.DataFrame() list_of_querys = ["查询1", "查询2", "查询3"] # 替换为你的实际查询列表 for query in list_of_querys: try: # 替换成你的实际表格提取逻辑(比如查询数据库、解析接口返回等) df = pd.DataFrame({"查询标识": [query], "数据列1": [100], "数据列2": [200]}) except Exception as e: # 出错时创建带查询标识的空表,便于后续排查问题 df = pd.DataFrame({"查询标识": [query], "错误信息": [str(e)]}) # 统一追加到总表,无论成功失败都会执行 total_df = pd.concat([total_df, df], ignore_index=True)
关键细节说明:
- 成功分支:执行你的实际表格提取逻辑,生成包含有效数据的DataFrame。
- 失败分支:创建空表时建议保留
查询标识和错误信息字段,避免空表无意义,方便后续定位哪个查询出了问题。 - 统一追加:将追加操作放在
try-except结构之外,确保每个查询对应的结果(成功数据或错误记录)都能被合并到总表中。
内容的提问来源于stack exchange,提问作者Noah_Seagull
相关产品推荐
相关产品推荐

