Python列表理解从Excel数据填充二维数组只给出1列

Windows上的Python 3.5。 我在Excel中有一个9×2的范围,我想用Python读入一个数组。

Excel范围数据:

2 2 0.833333333 1 2.166666667 2 0 0 1 0 1 1 1.5 1.166666667 0.833 1.333 1.667 1.333 

Python代码:

 import openpyxl import numpy # physicians physicians = ['DrA', 'DrB'] # activities activities = ['Admin1', 'Frac2', 'Spec3', 'Fleb4', 'Latr5', 'Endo6', 'Surg7', 'Surg8', 'Noth9', 'Annl10'] wb = openpyxl.load_workbook('m_a_j2pasted.xlsx') type = wb sheet = wb.get_sheet_by_name('sheet_mean_a_j') M = [[sheet.cell(row=rows, column=cols).value for rows in range(1, len(activities))] for cols in range(1, len(physicians))] M = numpy.array(M) numpy.transpose(M) print(M) print(M) out: [[ 2. ] [ 0.83333333] [ 2.16666667] [ 0. ] [ 0.5 ] [ 0.5 ] [ 1.5 ] [ 0.83333333] [ 1.66666667]] 

现在我该如何获得第二列? 我也试过这种方式:

 M = [] for rows in range(1, len(activities)): values = [] for cols in range(1, len(physicians)): values.append(sheet.cell(row=rows, column=cols).value) M.append(values) 

一样。

谢谢

您正尝试索引未初始化的数组,首先将其初始化

w,h = 8,5.对于范围(h)中的y,matrix= [[0对于范围(w)中的x)]#初始化

matrix[0] [6] = 3#通过循环input一个或多个值

打印Matrix [0] [6]#打印一个或多个元素

在你的情况下初始化DrA,DrB = 50,50。 医生= ['DrA','DrB']

在Python中阅读列表理解