Как назначить элементы данных файла Excel для 2D-матрицы в Python? - PullRequest
0 голосов
/ 05 ноября 2019

Я хочу использовать данные в листе Excel в качестве 2D-матрицы, но, хотя итерируя извлеченные данные, я столкнулся с некоторыми ошибками.

Я хочу загрузить набор данных из Excel в код Python. Я использовал библиотеку xlrd, подумал, что после итерации по элементам получается массив. Пока я ожидал иметь 2-D матрицу.

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:индекс списка вне диапазона

1 Ответ

2 голосов
/ 05 ноября 2019
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)
...