通过从Excel读取数据来创建矩阵

时间:2014-12-02 11:04:38

标签: python excel matrix

我正在尝试使用xlrd从XML文件创建数据矩阵。以下是XML数据和我的尝试:

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]]

关于如何获得所需输出的任何想法?

2 个答案:

答案 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()
相关问题