如何用循环多次运行Python脚本,传入不同日期年份参数并合并DataFrame
实现循环批量生成并拼接DataFrame
步骤1:封装生成DataFrame的逻辑为函数
如果你的原脚本是直接执行的代码,先把生成DataFrame的核心逻辑封装成可复用的函数,方便传入参数调用:
import pandas as pd def generate_target_df(date_param, year_param): # 替换成你原脚本生成DataFrame的实际代码 # 示例:模拟生成数据(仅作演示,需替换为真实逻辑) data = { 'record_date': [date_param], 'year': [year_param], 'metric_value': [pd.np.random.randint(1, 100)] } return pd.DataFrame(data)
步骤2:定义所有需要传入的参数组合
把要测试的date和year参数整理成一个列表,每个元素是一组参数元组:
# 按需求添加更多参数组合 parameter_pairs = [ ('01Jan2022', '2022'), ('11Jan2022', '2022'), ('21Jan2022', '2022'), # ... 可继续添加其他参数对 ]
步骤3:循环执行并收集所有DataFrame
初始化一个空列表,遍历参数组合,每次调用函数生成DataFrame并添加到列表中:
collected_dfs = [] for date, year in parameter_pairs: current_df = generate_target_df(date, year) collected_dfs.append(current_df)
步骤4:拼接所有DataFrame得到最终结果
用pandas.concat()把收集到的DataFrame拼接成一个大表,ignore_index=True可重置索引避免重复:
final_result_df = pd.concat(collected_dfs, ignore_index=True) # 查看最终结果 print(final_result_df)
注意事项
- 确保所有生成的DataFrame列名和数据类型完全一致,否则拼接后会出现缺失值或列错位问题。
- 如果原脚本包含IO操作(比如读取文件),建议在函数中加入
try-except块处理异常,避免单次执行失败中断整个循环。
内容的提问来源于stack exchange,提问作者user20159866
相关产品推荐
相关产品推荐

