使用 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
我有 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