arrays - 从 Excel 数据填充二维数组的 Python 列表理解仅给出 1 列

标签 arrays excel python-3.5

Windows 上的 Python 3.5。 我在 Excel 中有一个 9x2 范围,我想将其读入 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。 矩阵 = [[0 for x in range(w)] for y in range(h)] #initializing

Matrix[0][6] = 3 #通过循环输入一个或多个值

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

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

阅读Python中的列表理解

关于arrays - 从 Excel 数据填充二维数组的 Python 列表理解仅给出 1 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39201474/

相关文章:

javascript - 使用 Javascript 查找二维数组中数字最大的数组

javascript - 通过引用从一个数组推送到另一个数组

java - 有没有办法对整数数组进行排序并对另一个字符串数组进行相同的更改

c++ - 在cpp中遍历数组

excel - 我可以在 Excel DNA 项目中使用 Microsoft.Office.Tools.Excel,还是有其他方法来完成表的数据绑定(bind)?

VBA 错误 : Object variable or with variable not set

python - 如何在 Gtk 对话框中显示视频?

vba - 如何恢复被困在框架边缘之外的控件?

python - Python 3.4 中的 `async for`

Python 查找一些而不是全部自定义包