使用 Python 解析选择性列和行

Parsing selective columns and rows using Python

我有 9 列和不同行数的 xls 类型文件。我想使用 xlrd 或其他模块,以便我可以从九列中的第一列和第二列中提取所有值,然后分别使用提取的值。到目前为止,我的代码如下所示:

    import xlrd
    import openpyxl

    workbook = xlrd.open_workbook('C09.xls')

    sheet_names = workbook.sheet_names()


    sheet = workbook.sheet_by_name(sheet_names[0])

    num_rows = sheet.nrows
    num_cols = sheet.ncols

    plist = [[0 for x in range(3)] for x in range(num_rows)]

    for i in range(num_rows):
        for j in range(3):
           plist[i][j] = sheet.cell(i,j).value

然后使用[i]中的值(比如做乘法等等),然后从[j]中提取相应的值。

以上代码给出如下输出:

    [['Col header 1', 'Col header 2', 'Col header 3'], [1.0, 1000, 2000], [2.0, 1001, 2001], ..... so on]

有简单的方法吗?我是 Python 的新手,所以如果您能更具体一点,我将不胜感激。非常感谢!

一些feedback/improvements:

在您的代码段中,初始化部分是多余的。这避免了双重迭代:

plist = [[sheet.cell(i,j).value for j in range(3)] for i in xrange(num_rows)]

如果您将 运行 转换为 None 值,您可以将它们归一化:

plist = [[sheet.cell(i,j).value or 0 for j in range(3)] for i in xrange(num_rows)]

最后,这是一种更 Pythonic 的 0 初始化方法:

plist = [x[:] for x in [[0] * 3] * sheet.nrows