2015-01-11 3 views
0

성공적으로로드 된 xlrd 엑셀 시트를 numpy 매트릭스 (해당 시트를 나타내는)로 변환하는 변환 구문은 무엇입니까?Python : xlrd 시트를 numpy 매트릭스 (ndarray)로 변환

지금 당장 스프레드 시트의 각 행을 가져 와서 numpy 행렬에 추가하려고합니다. Sheet.row를 numpy.ndarray로 변환하는 구문을 이해할 수 없습니다. 여기에 지금까지 시도했습니다 무엇 : 나는 동의하고 inputData 매트릭스에 추가됩니다 NumPy와 뭔가 행을 변환하려고하는 마지막 줄에 모든 일을 해봤

import xlrd 
workbook = xlrd.open_workbook('input.xlsx') 
worksheet = workbook.sheet_by_name('Sheet1') 
num_rows = worksheet.nrows - 1 
num_cells = worksheet.ncols - 1 
inputData = numpy.empty([worksheet.nrows - 1, worksheet.ncols]) 
curr_row = -1 
while curr_row < num_rows: # for each row 
    curr_row += 1 
    row = worksheet.row(curr_row) 
    if curr_row > 0: # don't want the first row because those are labels 
     inputData[curr_row - 1] = numpy.array(row) 

. 올바른 변환 구문은 무엇입니까?

답변

0

num35 배열에 xlrd.sheet.Cell 요소의 목록 인 개체 row을 바로 변환하려고합니다. 그건 네가 원하는대로 작동하지 않을거야. elsewhere on SO을 제안하지만 pandasexist a function for this 것 같다

while curr_row < num_rows: # for each row 
    curr_row += 1 
    row = worksheet.row(curr_row) 
    if curr_row > 0: # don't want the first row because those are labels 
     for col_ind, el in enumerate(row): 
      inputData[curr_row - 1, col_ind] = el.value 

:이에게 먼 길을 너무 컬럼의 각을 가서해야합니다. 그리고 팬더 데이터 프레임은 수십 개의 배열을 상속하므로 너무 변형 될 수 있습니다. 당신은 sheetname 인수를 읽고 당신이 할 수있는 시트 제어 할 수 있습니다

import pandas as pd 
df = pd.read_excel('input.xlsx') 

: 아마 최고의 ... 난 당신이 XLSX 로딩 기능 팬더 라이브러리를 알고 있는지 궁금

2

을 바퀴를 재발견하지 values 속성의 Pandas DataFrame에서 Numpy 배열을 가져옵니다.