2014-12-02 118 views
1

我正嘗試使用xlrd從XML文件創建數據矩陣。下面是XML數據和我的嘗試:通過從Excel中讀取數據創建矩陣

enter image description here

import xlrd 
file_loc="C:\\Users\\xxxx\\Documents\\test1.xlsx" 
wkb=xlrd.open_workbook(file_loc) 
sheet=wkb.sheet_by_index(0) 

_maxtrix=[] 
for col in range (sheet.ncols): 
    for row in range (sheet.nrows): 
     _matrix.append(sheet.cell_value(row,col)) 
print _matrix 

我的輸出:

[1.0, 2.0, 3.0, 4.0, 2.0, 3.0, 4.0, 5.0, 3.0, 4.0, 5.0, 6.0, 4.0, 5.0, 6.0, 7.0] 

所需的輸出:

[[1,2,3,4], 
[2,3,4,5], 
[3,4,5,6], 
[4,5,6,7]] 

如何獲得所需的輸出任何想法?

回答

1

您正在追加到一個列表,因此您獲得1個列表。

您必須將列表添加到_matrix。類似的東西應該做的伎倆:

_matrix=[] 
for row in range (sheet.nrows): 
    _row = [] 
    for col in range (sheet.ncols): 
     _row.append(sheet.cell_value(row,col)) 
    _matrix.append(_row) 

如果你想int,而不是float,與

 _col.append(int(sheet.cell_value(row,col))) 
+0

謝謝你這麼多的快速解決方案轉換值。它運作良好。 – user2274879 2014-12-02 11:12:14

+0

如何閱讀特定列?例如'列c'來獲取列表; '[3,4,5,6]' – user2274879 2014-12-02 12:11:58

+0

我剛發現你的解決方案不能按預期工作,因爲矩陣必須轉置。 – user2274879 2014-12-02 13:38:50