在python中计算并添加列

时间:2014-12-22 09:25:06

标签: python col

我认为我对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]

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分:0)

我找到了一种更简单,更灵活的方法来调整最后一列中的值。

counter = 0
for list in data:
    counter = counter + 1
    if counter == 1:
        value = 'Vrspng'
    else:
        value = counter
    list.append(value)