我想要做一个令人难以置信的简单事情:将Excel工作表的部分加载到Numpy数组中。我发现,工作的杂牌组装电脑,但它是令人尴尬的unpythonic: 说我的工作表被加载为“WS”,代码:Excel工作表到Numpy数组
A = np.zeros((37,3))
for i in range(2,39):
for j in range(1,4):
A[i-2,j-1]= ws.cell(row = i, column = j).value
负荷“WS”的内容到阵列A.
必须有一个更优雅的方式来做到这一点。例如,csvread允许更自然地做到这一点,虽然我可以很好地将.xlsx文件转换为csv文件,但使用openpyxl的目的是避免转换。那么我们就是,强大Intertubes的集体智慧:执行这个概念上微不足道的操作的更多pythonic方法是什么?
非常感谢您的回答。 PS:我通过Spyder在Mac上运行Python 2.7.5,是的,我读过了openpyxl教程,这是我得到这个目标的唯一原因。
谢谢。这是无可争辩的更优雅。你愿意解释这里涉及的概念吗?我想我理解你使用的循环风格(我已经看到它应用于整数或列表元素),但我无法理解如何遍历ws []元素。例如,如果我键入type(ws ['C1']),我会得到openpyxl.cell.cell.Cell,并且我不清楚如何能够遍历这类对象。我正在努力学习如何更好地编程,而不是只是在StackOverflow上提问......感谢您的耐心。 –
@ElNiño有几件事情,我会编辑我的答案,并添加一些信息。 – paddyg
Aaaah,“列表理解”。这就是这个神奇的技巧被称为?我读了一些关于它的内容。这将需要一些大脑重新格式化以适应它,但它看起来非常强大。那么在这种情况下,它知道使用嵌入ws中的发生器进行循环?我也必须查看“发电机”。无论如何,感谢提示,并且很高兴我能指出你一个有用的包,我没有写! –