You need to enable JavaScript to run this app. 如何使用pandas读取xlsx文档中指定行列范围的目标数据
优惠活动
大模型
产品
解决方案
定价
更多

如何使用pandas读取xlsx文档中指定行列范围的目标数据

读取指定Excel区域的实现代码

针对你需要读取Scoring表76-102行、A-G列的需求,提供两种可直接落地的方案,可根据场景选择:

方案1:直接限定读取范围(推荐,适合大文件/复杂结构Excel)

无需加载全表冗余数据,读取性能更高,避免无关内容干扰处理:

import pandas as pd

def print_hi():
    # 场景A:76-102行全为纯数据,无表头
    df = pd.read_excel(
        'test.xlsx',
        sheet_name='Scoring',
        usecols='A:G',  # 直接匹配Excel列范围A到G
        skiprows=range(75),  # 跳过Excel物理行1-75
        nrows=27,  # 76到102共27行物理行
        header=None  # 无表头,用数字作为默认列名
    )

    # 场景B:76行为表头,77-102行为数据(注释掉上面的代码,启用下面的逻辑)
    # df = pd.read_excel(
    #     'test.xlsx',
    #     sheet_name='Scoring',
    #     usecols='A:G',
    #     skiprows=range(75),
    #     nrows=27,  # 包含76行表头,共读27物理行
    #     header=0  # 把读入的第一行(原Excel76行)设为列名
    # )

    # 后续数据处理逻辑...

参数说明:

  • usecols直接支持Excel列标写法,不需要手动换算列索引
  • 读取的总行数直接按物理行总数计算(102-76+1=27),header参数仅决定哪行作为列名,不影响实际读取的物理行范围

方案2:读取全表后按位置切片(适合需使用同表其他区域数据的场景)

如果后续需要关联处理Scoring表的其他区域数据,读入时先关闭自动表头识别,保证行索引和Excel物理行严格对应,再用iloc切片:

import pandas as pd

def print_hi():
    # 关闭自动表头识别,所有行按物理顺序存储,此时df.iloc[k]对应Excel物理行k+1
    df = pd.read_excel('test.xlsx', sheet_name='Scoring', header=None)
    # Excel76行对应索引75,102行对应索引101;iloc切片左闭右开,行范围写75:102
    # 列A对应索引0,G对应索引6,列范围写0:7
    target_df = df.iloc[75:102, 0:7]

    # 若需要将76行设为目标区域的表头,可后续手动处理:
    # target_df.columns = target_df.iloc[0]
    # target_df = target_df[1:]

避坑提示:

  • 不要直接用默认header=0的读入结果做行切片,否则会因为自动把Excel第一行当表头,导致行号整体偏移1位
  • 若目标区域内存在空行、合并单元格错位,可先打印提取的target_df前几行和原始Excel核对,确认行号匹配后再做后续处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.25 18:15:04