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

Python中更优的Excel列转变量方法及自动获取列行数方案

Excel列转Python变量的优化方案

方案一:改进xlrd写法(兼容现有依赖)

你的现有代码需要手动指定循环行数,且重复编写append操作,我们可以利用xlrd的nrows属性自动获取总行数,再用列表推导式简化代码:

import xlrd

workbook = xlrd.open_workbook(r"C:\Desktop\SawToothCalib\TestData.xlsx")
worksheet = workbook.sheet_by_index(0)

# 自动获取工作表总行数,从第2行(索引1)开始读取数据
total_rows = worksheet.nrows

# 用列表推导式直接生成各列数据,替代循环+append
X_Test = [worksheet.cell_value(i, 0) for i in range(1, total_rows)]
Y_Test = [worksheet.cell_value(i, 2) for i in range(1, total_rows)]
Row_Test = [worksheet.cell_value(i, 3) for i in range(1, total_rows)]
Col_Test = [worksheet.cell_value(i, 4) for i in range(1, total_rows)]

方案二:使用pandas简化实现(推荐)

xlrd对新版.xlsx文件的支持有限(xlrd 2.0+仅支持.xls),而pandas处理Excel数据更高效通用,无需手动循环,直接通过列名提取数据:

import pandas as pd

# 读取Excel第一个工作表,自动识别表头
df = pd.read_excel(r"C:\Desktop\SawToothCalib\TestData.xlsx")

# 提取对应列转为列表(如需保留pandas Series格式,可去掉.tolist())
X_Test = df['X'].tolist()
Y_Test = df['Y'].tolist()
Row_Test = df['Row_Cog'].tolist()
Col_Test = df['Col_Cog'].tolist()

这个方案的优势:

  • 自动跳过表头行,无需手动指定起始索引
  • 直接用列名提取数据,不用关心列的位置顺序
  • 支持.xls和.xlsx格式,兼容性更强

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 19:51:01