2015-10-07 3 views
0

Я работаю над извлечением данных с помощью xlrd, и я извлек 8 столбцов ввода для моего проекта. Каждый столбец данных имеет около 100 строк. Мой код выглядит следующим образом:xlrd data extract python

wb = xlrd.open_workbook('/Users/Documents/Sample_data/AI_sample.xlsx') 

sh = wb.sheet_by_name('Sample') 

x1 = sh.col_values(+ 0)[1:] 
x2 = sh.col_values(+ 1)[1:] 
x3 = sh.col_values(+ 2)[1:] 
x4 = sh.col_values(+ 3)[1:] 
x5 = sh.col_values(+ 4)[1:] 
x6 = sh.col_values(+ 5)[1:] 
x7 = sh.col_values(+ 6)[1:] 
x8 = sh.col_values(+ 7)[1:] 

Теперь я хочу создать массив входов, который дает каждую строку из 8 столбцов. Для, например: если это мои 8 столбцов данных

x1 x2 x3 x4 x5 x6 x7 x8 
1 2 3 4 5 6 7 8 
7 8 6 5 2 4 8 8 
9 5 6 4 5 1 7 5 
7 5 6 3 1 4 5 6 

я хочу что-то вроде: x1, x2, x3, x4, x5, x6 ([1,2,3,4,5,6,7 , 8]) для всех 100 + строк.

Я мог бы сделать серию мудрого извлечения, но сделать это для более чем 100 строк очень сложно. Так как я это делаю. Я также понимаю, что это можно сделать с помощью np.array. Но я не знаю как.

ответ

0

Я нашел этот кусок кода очень полезный

X = np.array([x1, x2, x3, x4, x5, x6, x7, x8]) 
return X.T 
1

Вы также можете попробовать openpyxl что-то похожее на xlrd

from openpyxl import load_workbook,Workbook 
book = load_workbook(filename=file_name) 
sheet = book['sheet name'] 
for row in sheet.rows: 
    col_0   = row[0].value 
    col_1   = row[1].value 

я обычно предпочитаю openpyxl вместо xlrd