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

非标准Excel转pandas DataFrame时如何选取指定行列范围数据

Excel指定行列区域数据提取方案

下面分两种场景给出可直接运行的实现代码:

场景1:直接通过openpyxl提取(适合未转DataFrame、需读取原始单元格值的情况)

openpyxl的行、列计数默认从1开始,J列对应列号10,X列对应列号24,直接按范围读取即可:

from openpyxl import load_workbook
import pandas as pd

# 替换为你的文件路径、工作表名
wb = load_workbook("示例文件.xlsx", data_only=True)
ws = wb["Sheet1"]

# 读取指定范围的单元格值
target_data = ws.iter_rows(
    min_row=4,
    max_row=12,
    min_col=10,
    max_col=24,
    values_only=True
)

# 转成DataFrame格式
df_target = pd.DataFrame(target_data)

场景2:已将全表转为pandas DataFrame后提取(适配你当前的进度)

需要根据你转DataFrame时的参数调整索引,以下是两种常见情况的实现:

  • 情况A:转DataFrame时设置了header=0,将Excel第1行作为表头
    此时Excel第4行对应DataFrame的索引为2,第12行对应索引为10;如果列名保留了Excel的A/X字母标识,可直接按列名切片:
    df_target = df.loc[2:10, "J":"X"]
    
  • 情况B:转DataFrame时未设置表头,列使用默认的0/1/2整数索引
    此时J列对应索引9,X列对应索引23,用iloc切片(注意iloc为左闭右开规则):
    # 行范围3:11对应Excel第4行到第12行,列范围9:24对应J到X列
    df_target = df.iloc[3:11, 9:24]
    

注意:如果转DataFrame时跳过了前N行空行,需要对应调整行索引的偏移量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 18:36:05