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

并行代码运行时如何生成并保存两个独立CSV文件?

修改多进程代码生成两个独立CSV文件

下面是调整后的完整代码,实现每次迭代返回两个DataFrame,最终分别合并并保存为独立CSV:

import pandas as pd
import os
import multiprocessing

def single_iteration(iter:int):
    some_parameters = 100
    data1, data2, data3, data4 = do_something()
    # 分别收集两组列的数据
    df1_data = []
    df2_data = []
    for i in range(100):
        # 拆分数据到两个字典
        df1_row = {'Col1': data1, 'Col2': data2}
        df2_row = {'Col3': data3, 'Col4': data4}
        df1_data.append(df1_row)
        df2_data.append(df2_row)
    # 生成两个DataFrame并返回
    df1 = pd.DataFrame(df1_data)
    df2 = pd.DataFrame(df2_data)
    return df1, df2

if __name__ == "__main__":
    run_stop = 100
    number_of_cores = int(os.environ['SLURM_CPUS_PER_TASK'])
    with multiprocessing.Pool(number_of_cores) as pool:
        # 每个进程返回 (df1, df2) 元组,results是元组列表
        results = pool.map(single_iteration, range(run_stop))
    
    # 拆分结果,分别收集所有df1和df2
    all_df1 = [res[0] for res in results]
    all_df2 = [res[1] for res in results]
    
    # 分别合并并保存为CSV
    combined_df1 = pd.concat(all_df1, ignore_index=True)
    combined_df2 = pd.concat(all_df2, ignore_index=True)
    
    # 替换为你的实际路径和文件名
    combined_df1.to_csv("path/to/df1_output.csv", index=False)
    combined_df2.to_csv("path/to/df2_output.csv", index=False)

关键改动说明:

  • 函数返回值调整:single_iteration不再返回单个DataFrame,而是返回包含两个DataFrame的元组,对应你需要的两组列。
  • 数据拆分收集:在循环中分别构建两组列的行数据,避免后续拆分原DataFrame的额外开销。
  • 结果拆分合并:主进程中将多进程返回的元组列表拆分为两个独立的DataFrame列表,再分别执行concat合并,最后保存为两个独立的CSV文件。
  • 修正原代码小问题:原代码中Col2错误使用了data1,调整为需求中的data2。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 11:14:59