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

如何在Anaconda Jupyter中用Pool多进程实现Excel中3个表格的乘法运算?

在Anaconda Jupyter中用多进程处理Excel表格乘法

方案一:使用multiprocessing.Pool手动管理多进程

适合小到中等规模的Excel文件,手动控制进程分配,逻辑直观。

前置依赖

确保安装所需库:

conda install pandas openpyxl

实现代码

import pandas as pd
from multiprocessing import Pool

# 定义单个工作表的处理函数
def process_single_sheet(sheet_name):
    # 读取指定工作表
    df = pd.read_excel('your_data.xlsx', sheet_name=sheet_name)
    # 执行乘法运算(示例:col1和col2相乘生成result列)
    df['result'] = df['col1'] * df['col2']
    # 保存处理后的结果
    df.to_excel(f'processed_{sheet_name}.xlsx', index=False)
    return f"Completed processing {sheet_name}"

if __name__ == '__main__':
    # 目标工作表列表
    target_sheets = ['Sheet1', 'Sheet2', 'Sheet3']
    # 创建进程池(进程数可根据CPU核心数调整)
    with Pool(processes=3) as pool:
        # 映射任务到进程池
        results = pool.map(process_single_sheet, target_sheets)
    # 输出处理结果
    for res in results:
        print(res)

Jupyter环境注意事项

必须将主逻辑包裹在if __name__ == '__main__':块中——Jupyter的交互式内核会重复导入模块,缺少这个判断会导致无限创建子进程,引发错误。


方案二:使用Dask自动实现多进程处理

适合大体积Excel文件,Dask会自动处理并行调度、内存优化,无需手动管理进程池。

前置依赖

安装Dask及Excel处理扩展:

conda install dask dask-excel

实现代码

import dask.dataframe as dd
from dask.distributed import Client

# 启动本地Dask客户端(默认采用多进程模式)
client = Client()

# 读取指定的三个工作表,返回Dask DataFrame字典
sheet_dfs = dd.read_excel('your_data.xlsx', sheet_name=['Sheet1', 'Sheet2', 'Sheet3'])

# 定义乘法处理函数(与Pandas语法完全兼容)
def apply_multiplication(df):
    df['result'] = df['col1'] * df['col2']
    return df

# 批量处理所有工作表
processed_dfs = {name: apply_multiplication(df) for name, df in sheet_dfs.items()}

# 计算并保存结果(Dask自动并行执行)
for sheet_name, dask_df in processed_dfs.items():
    # compute()触发实际计算,将Dask DataFrame转为Pandas DataFrame后保存
    dask_df.compute().to_excel(f'dask_processed_{sheet_name}.xlsx', index=False)

# 关闭Dask客户端
client.close()

Dask方案优势

  • 自动处理多进程调度,无需手动维护进程池;
  • 支持分块读取超大Excel,避免内存溢出;
  • 语法与Pandas高度兼容,学习成本低。

内容的提问来源于stack exchange,提问作者Даут Цицкиев

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 05:05:23