我正在尝试使用xlrd从XML文件创建数据矩阵。以下是XML数据和我的尝试:
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]]
关于如何获得所需输出的任何想法?
答案 0 :(得分: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)))
答案 1 :(得分:0)
另一种可能的方法是使用pandas。
您可以使用方法read_excel
阅读csv,然后将其转换为矩阵。
这是一个例子:
import pandas as pd
df = pd.read_excel("something.xlsx", sheet_name=0)
a = df.as_matrix()