将excel列提取到python数组中

我想提取excel列(不行)到数组的python数组。 它必须是数组,而不是字典。

Excel文件看起来像这样:

ABC 1 123 534 576 2 456 745 345 3 234 765 285 

我想用下面的格式把它带入python:

 [[123,534,576],[456,745,345],[234,765,285]] 

我将如何做到这一点? 谢谢

这是一个更简单的方法:

 import xlrd book = xlrd.open_workbook('your.xlsx') sheet = book.sheet_by_name('example') data = [[sheet.cell_value(r, c) for c in range(sheet.ncols)] for r in range(sheet.nrows)] # Profit ! print data 

如果你正在关注上面的评论,看看xlrd包,你可以试试看看它是否有效?

(根据我在这里find的: http : //www.youlikeprogramming.com/2012/03/examples-reading-excel-xls-documents-using-pythons-xlrd/ )

 import xlrd workbook = xlrd.open_workbook('my_workbook.xls') worksheet = workbook.sheet_by_name('Sheet1') num_rows = worksheet.nrows - 1 curr_row = 0 #creates an array to store all the rows row_array = [] while curr_row < num_rows: row = worksheet.row(curr_row) row_array += row curr_row += 1 print row_array 

使用xlrd逐行加载数据,然后使用zip转置它。

 >>> >>> a = [[1,2,3],[4,5,6],[7,8,9]] >>> zip(*a) [(1, 4, 7), (2, 5, 8), (3, 6, 9)] >>> 

使用xlrd逐行加载数据,使用它创build一个numpy数组,然后转置它。

 >>> import numpy >>> a = [[1,2,3],[4,5,6],[7,8,9]] >>> z = numpy.array(a) >>> z array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) >>> z.transpose() array([[1, 4, 7], [2, 5, 8], [3, 6, 9]]) >>> 

我想到了。

 import csv cr = csv.reader(open("temp.csv","rb")) arr = range(100) #adjust to needed x = 0 for row in cr: arr[x] = row x += 1 print arr[:22] #adjust to needed 

导入csv

array = []

与开放(*插入文件目录这里*)作为fin:

  reader = csv.reader(fin) rows = [row for row in reader] for row in rows: j = 0 arr = [] for i = 0 < 3: arr[i] = row[i] array[j] = arr j = j + 1