首页 > 解决方案 > 如何将excel文件数据的元素分配给Python中的二维矩阵?

问题描述

我想将 excel 工作表中的数据用作 2D 矩阵,但尽管迭代提取的数据我遇到了一些错误。

我想将数据集从 excel 加载到 python 代码。我使用了 xlrd 库,在遍历元素后认为它会产生一个数组。虽然我希望有一个二维矩阵。

import xlrd


workbook = xlrd.open_workbook('test1.xlsx')
sheet = workbook.sheet_by_index(0)

N =sheet.nrows
M =sheet.ncols

mat_d =  [ [0] * N for _ in range(M)]

mat=[]
for i in range(N):
    for j in range(M):
        mat.append(sheet.cell(i, j).value)

k = 0
for i in range(N):
    for j in range(M):
        mat_d[i][j]= mat[k]
        k += 1

该代码在这里给了我正确的答案,mat_d[1][1] = mat[79],但是当我想在 for 循环中对其进行迭代时,它最终会出现错误:IndexError: list index out of range

标签: pythonexcelpython-3.xxlrd

解决方案


import os
import csv

data = []

with open(os.path.join(sys.path[0], file), newline='') as dataset:
    reader = csv.reader(dataset)
    for row in reader:
        rowlist = []
        for numeric_string in row:
            value = int(numeric_string)
            rowlist.append(value)

        data.append(rowlist)

推荐阅读