0

我想我对 python 专家有一个相当简单的问题。经过很多努力,我把代码放在一起。我正在打开一个 excel 文件,将其转换为列表列表并将一列添加到此列表列表中。现在我想重命名并重新计算这个添加列的行。即使列数可能不同,我如何编写始终采用列表列表的最后一列的脚本。

import xlrd
file_location = "path"
workbook = xlrd.open_workbook(file_location)
sheet = workbook.sheet_by_index(0)
data = [[sheet.cell_value(r, c) for c in range(sheet.ncols)] for r in range(sheet.nrows)]
data = [x + [0] for x in data]
4

2 回答 2

1

如果你有一个函数调用calculate_value,它接受一行并返回该行的值,你可以这样做:

def calculate_value(row):
    # calculate it...
    return value

def add_calculated_column(rows, func):
    result_rows = []
    for row in rows:
        # create a new row to avoid changing the old data
        new_row = row + [func(row)]
        result_rows.append(new_row)
    return result_rows

data_with_column = add_calculated_column(data, calculate_value)
于 2014-12-22T09:44:00.920 回答
0

我发现了一种更简单、更灵活的方式来调整最后一列中的值。

counter = 0
for list in data:
    counter = counter + 1
    if counter == 1:
        value = 'Vrspng'
    else:
        value = counter
    list.append(value)
于 2014-12-22T10:48:31.053 回答