2017-11-25 5 views
1

今、私はこれを使用していますが、非常に遅く、リストを列として出力します。さらに、ここで私のリストに手動で列を追加しています。 numpyを使用して列を配列として読み取るより効率的な方法はありますか?xlsxまたはodsカラムをPythonの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() 
を試すことができますを使用してみてください
関連する問題