python中表列的平均值

时间:2016-11-28 15:46:38

标签: python

创建好的代码,输出如下表:

[['              ' '     Scarface ' '     Godfather' '        Avatar']
['Al Pachino    ' '             1' '             1' '            -1']
['Marlon Brando ' '            -1' '             1' '            -1']
['De Niro       ' '            -1' '             1' '            -1']
['Sigorny Weaver' '            -1' '            -1' '             1']]

如何通过编写一个函数来获得表列的平均值,该函数的参数是整数A和正整数i的表。该函数应返回A列i的非负条目的平均值。

我想用最简单易读的代码执行此操作,稍后我可以向孩子们解释。

谢谢Jemma

1 个答案:

答案 0 :(得分:2)

使用公式<ONLY-POSITIVE-VALUES> / <ALL-INTEGER-COLUMS>

获得平均值
data = [
    ['              ', '     Scarface ', '     Godfather', '        Avatar'],
    ['Al Pachino    ', '             1', '             1', '            -1'],
    ['Marlon Brando ', '            -1', '             1', '            -1'],
    ['De Niro       ', '            -1', '             1', '            -1'],
    ['Sigorny Weaver', '            -1', '            -1', '             1']
]

def compute_average(row):
    average = 0
    count   = 0
    for column in row:
        count += 1
        try:
            value = int(column)
        except ValueError:
            continue

        if value > 0:
            average += value

    return float(average) / count

for row in data[1:]:
    print compute_average(row)

如果您需要<ONLY-POSITIVE-VALUES> / <ALL-POSITIVE-VALUES-COLUMS>之类的公式,只需将count += 1行从for循环顶部移至if value > 0语句。

try / except部分只是因为当您尝试解析整数中的非整数字符串时Python引发错误,它允许您获取任何数据并且只是跳过非整数数据。