如何在 python 中将 xlsx 或 ods 列读取为 numpy 数组

How to read xlsx or ods columns as numpy arrays in 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

尝试使用 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()])

或者您可以尝试 pandas to_records

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