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

如何使用Dask读取多个Excel文件 实现批量读取合并操作

Dask批量读取合并Excel文件解决方案

依赖准备

首先确保安装所需依赖,Dask读取Excel底层复用Pandas的接口,依赖和Pandas读取Excel一致:
pip install dask pandas openpyxl
如果是处理xls格式的旧版Excel,额外安装xlrd即可:pip install xlrd

核心实现代码

和你原有的Pandas+Glob的写法逻辑高度对齐,只需要引入Dask的延迟执行包装即可:

import glob
import pandas as pd
import dask.dataframe as dd
from dask.delayed import delayed

# 匹配目标Excel文件,和原有逻辑完全一致
files = glob.glob('Working Files/*.xlsx')
# 用delayed包装单文件读取操作,生成延迟执行的任务列表
delayed_dfs = [delayed(pd.read_excel)(f, skiprows=2) for f in files]
# 合并所有任务为Dask DataFrame
dask_df = dd.from_delayed(delayed_dfs)

后续使用说明

  • 如果需要得到最终的Pandas DataFrame(数据量可以全部放进内存的场景),调用df = dask_df.compute()即可,效果和你原有Pandas写法的输出完全一致,如果需要和ignore_index=True相同的全局连续索引,补充调用df = df.reset_index(drop=True)即可
  • 如果数据量过大无法全量载入内存,不需要调用compute,直接在dask_df上执行过滤、聚合等后续操作即可,Dask会自动分块调度执行,避免内存溢出

常见适配场景说明

  • 若多个Excel的列名/列顺序不一致,可以在单文件读取的逻辑中补充列名统一的处理,示例:
    delayed(pd.read_excel)(f, skiprows=2).reindex(columns=["列1","列2","列3"])
  • 若需要读取Excel中指定的sheet,直接在read_excel参数中添加sheet_name="目标sheet名"即可
  • 若需要跳过异常读取的文件,可以在delayed的包装逻辑中添加异常捕获处理即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 12:24:04