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

如何用PySpark Pandas批量读取含‘Data USD’的Excel工作表?

解决方案

核心思路

先遍历每个Excel文件,获取所有工作表名称并筛选出包含Data USD的目标表,再读取对应工作表的数据。

修改后的代码

import pyspark.pandas as ps

# 获取目录下所有文件信息,过滤出Excel格式文件
my_files = ps.DataFrame(dbutils.fs.ls("abfss://my_container@my_env.dfs.core.windows.net/my_files/"))
excel_files = my_files[my_files['name'].str.endswith(('.xlsx', '.xls'))]['path'].tolist()

dataframes = []

def read_target_sheets(input_path):
    # 读取当前文件所有工作表,返回{表名: DataFrame}格式的字典
    all_sheets_dict = ps.read_excel(input_path, sheet_name=None)
    # 筛选名称包含"Data USD"的工作表
    target_sheets = [sheet for sheet in all_sheets_dict if 'Data USD' in sheet]
    
    for sheet in target_sheets:
        # 读取目标工作表并跳过前5行
        df = ps.read_excel(input_path, sheet_name=sheet, skiprows=5)
        # 可选:添加来源标识字段,方便后续数据溯源
        df['source_file'] = input_path.split('/')[-1]
        df['source_sheet'] = sheet
        dataframes.append(df)

# 逐个处理所有Excel文件
for file_path in excel_files:
    read_target_sheets(file_path)

# 合并所有DataFrame(按需选择)
final_df = ps.concat(dataframes, ignore_index=True)

关键细节说明

  • 用sheet_name=None读取Excel时,会返回包含所有工作表的字典,通过字典键即可获取所有表名
  • 提前过滤出.xlsx/.xls格式文件,避免处理目录或其他非目标文件
  • 添加来源字段可帮助后续排查数据问题,不需要可直接删除对应代码行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 23:20:02