2017-11-25 23 views
1

지금 당장이 방법을 사용하고 있지만 느린 것으로 보이며 열을 목록으로 인쇄합니다. 또한 여기에 수동으로 열을 내 목록에 추가하고 있습니다. numpy를 사용하고 열을 배열로 읽는 더 효율적인 방법이 있습니까?xlsx 또는 ods 열을 파이썬에서 numpy 배열로 읽는 법

그렇지 않은 경우 읽기 쉽기 때문에 .txt 또는 .csv로 변환하려고합니다. 가장 효율적인 옵션은 무엇입니까?

또한 .ods 및 .xlsx에도 동일한 파일이 있으므로 두 파일 중 하나를 사용하는 것이 좋습니다.

import xlrd 
workbook = xlrd.open_workbook("Folds5x2_pp.xlsx","rb") 
sheets = workbook.sheet_names() 
print sheets 
required_data = [] 
for sheet_name in sheets: 
    sh = workbook.sheet_by_name(sheet_name) 
    for rownum in range(sh.nrows): 
     row_val = sh.row_values(rownum) 
     required_data.append((row_val[0], row_val[1])) 
print required_data 

답변

0

에 한번 사용 openpyxl

>>> from openpyxl import load_workbook 
>>> wb = load_workbook('Folds5x2_pp.xlsx', read_only=True) 
>>> print wb.sheetnames 
['Sheet1', 'Sheet2', 'Sheet3'] 
>>> ws = wb.get_sheet_by_name('Sheet1') 
>>> cols = 0 # column index 
>>> x2 = np.array([r[cols].value for r in ws.iter_rows()]) 

또는 당신이 시도 할 수 팬더 to_records

import pandas as pd; 
df = pd.read_excel('Folds5x2_pp.xlsx'); 
x2 = df.to_records()