You need to enable JavaScript to run this app. 如何使用Pandas遍历xlsx工作表并仅读取指定列数据
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Pandas遍历xlsx工作表并仅读取指定列数据

Pandas实现xlsx表逐行提取URN、GUID、CODE列值的方法

环境准备

  • 需先安装pandas及xlsx专用读取引擎openpyxl,执行安装命令:
    pip install pandas openpyxl

核心实现思路

  • 读取xlsx文件时直接指定仅加载需要的3个目标列,跳过其他无关列,大幅降低内存占用
  • 数据集加载完成后逐行遍历,按列名直接获取对应单元格的取值,全程不需要处理其他冗余列

可直接复用的示例代码

import pandas as pd

# 替换为你本地的xlsx文件路径
file_path = "你的工作表.xlsx"

# 读取文件时通过usecols参数指定仅加载3个目标列
excel_df = pd.read_excel(
    io=file_path,
    engine="openpyxl",
    usecols=["URN", "GUID", "CODE"]
)

# 逐行遍历提取每列的取值
for row_index, row_data in excel_df.iterrows():
    # 按列名直接读取当前行的三个目标值
    current_urn = row_data["URN"]
    current_guid = row_data["GUID"]
    current_code = row_data["CODE"]
    # 后续可在此处添加自定义业务逻辑,比如数据校验、结果写入其他文件等
    print(f"行号{row_index + 2}取值:URN={current_urn}, GUID={current_guid}, CODE={current_code}")

性能优化与常见问题处理

  • 大表遍历提速:当工作表数据量超过10万行时,可替换遍历方法为itertuples(),遍历效率比iterrows()高30%以上,写法如下:
    # 高性能遍历版本
    for row_data in excel_df.itertuples(index=False):
        current_urn = row_data.URN
        current_guid = row_data.GUID
        current_code = row_data.CODE
    
  • 列名匹配报错处理:如果运行时提示找不到'URN'/'GUID'/'CODE'列,大概率是原始表的列名前后带了多余空格,可在读取后加一行清洗代码解决:excel_df.columns = excel_df.columns.str.strip(),统一去掉列名前后的空白字符即可完成精准匹配。
  • 避免无效内存消耗:不要先读取全表再筛选目标列,这种操作对于列数多、单文件超过100M的场景会造成不必要的内存浪费,直接在读取阶段通过usecols指定目标列的方式,整体处理速度会提升数倍。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.01 03:36:05