Python中如何将Excel行数据存入指定结构的嵌套列表
最简实现方案
针对你的需求,pandas是最适合新手的工具,代码简洁直观,几步就能完成:
步骤1:安装依赖
先确保装了pandas和Excel读取依赖:
pip install pandas openpyxl
步骤2:核心代码
假设你的Excel文件名为data.xlsx,代码如下:
import pandas as pd # 读取Excel文件,默认读取第一个工作表 df = pd.read_excel("data.xlsx") final_list = [] # 遍历每一行数据 for _, row in df.iterrows(): # 提取前5个单元格,转成float类型并存入list1 list1 = row.iloc[:5].astype(float).tolist() # 提取第6个单元格,转成float后存入list2(注意索引从0开始,第6个对应索引5) list2 = [row.iloc[5].astype(float)] # 组合成list3,加入最终列表 final_list.append([list1, list2]) # 输出结果验证 print(final_list)
代码解释
df.iterrows():逐个遍历Excel里的每一行row.iloc[:5]:选取当前行的前5个元素,astype(float)强制转换为浮点型,tolist()转成普通列表row.iloc[5]:选取第6个元素,用[]包裹是为了保持列表格式,和示例里的list2结构一致- 最后把
[list1, list2]追加到final_list,就得到你需要的嵌套列表结构
备选方案:用openpyxl直接操作单元格
如果不想用pandas,也可以用openpyxl直接操作Excel单元格,适合需要更精细控制的场景:
from openpyxl import load_workbook # 加载Excel文件 wb = load_workbook("data.xlsx") # 获取当前活跃的工作表 ws = wb.active final_list = [] # 从第2行开始遍历(如果你的Excel没有表头,就把min_row改成1) for row in ws.iter_rows(min_row=2, values_only=True): # 前5个单元格转float存入list1 list1 = [float(cell) for cell in row[:5]] # 第6个单元格转float存入list2 list2 = [float(row[5])] final_list.append([list1, list2]) print(final_list)
注意:如果Excel单元格里有非数字内容,
float()会报错,确保你的数据都是合法的数字格式哦。
内容的提问来源于stack exchange,提问作者Elee
相关产品推荐
相关产品推荐

