首页 > 解决方案 > 如何计算csv文件中列内的平均值?

问题描述

我正在尝试查找 csv 文件中某一列中数字的平均值。我不知道如何找到列的长度。它不断给我错误说

line 20, in average_magnitude
    size = len(row[2])
TypeError: 'int' object is not subscriptable

我试图让行浮动

但这对我也不起作用。

def average_magnitude(file_name):

    magnitude = 0
    row = 0

    size = len(row[2])
    for each_line in file:
        each_line = each_line.strip()
        row = each_line.split(",")
        for each_num in file:
            s += each_num
        
        magnitude = s/size

标签: python-3.xcsvaverage

解决方案


一列是垂直的(从上到下);获得此平均值的一种方法是遍历所有行,获取该行中的特定值并添加到总和,然后除以数组的长度。数组的长度等于任何单个列的长度。

这是一些用于计算列平均值的伪代码:

sum = 0
for line in csv_file:
  sum+=line[1]
return sum/len(csv_file)
  

如果你想获得某一行(从左到右),那么你可以对任何类似数组的对象使用 numpy 的内置 mean() 函数

这是一些用于计算行平均值的伪代码:

import numpy as np

for line in csv_file:
  mean = np.mean(line) 

推荐阅读