0

我有一个 csv 文件,其中包含 4 个不同列中的大量值。使用 python,有没有办法将一个特定列中的值相加(比如第 1 列中的值)。我想找到一列中所有值的平均值

values_list = []

for row in b:
   values_list.append(row[1])

我可以使用这种方法隔离特定列,但是有没有办法修改它以便能够添加值并找到特定列中的平均值

提前致谢

4

1 回答 1

2

没有示例 csv 文件,我使用了以下内容:

1,2,3,4,5
1,2,3,4,5
1,2,3,4,5
1,2,3,4,5
0,1,2,3,4
2,3,4,5,6

此 python 脚本将 csv 加载到内存中,对其进行解析,收集第n列的值,并计算总和和平均值。

#!/bin/env python

col = 2

values = []
with open('csv.csv', 'r') as csv:
    for line in csv.readlines():
        elements = line.strip().split(',')
        values.append(int(elements[col]))

csum = sum(values)
cavg = sum(values)/len(values)
print("Sum of column %d: %f" % (col, csum))
print("Avg of column %d: %f" % (col, cavg))

例如

$ python parsecsv.py
Sum of column 0: 6.000000
Avg of column 0: 1.000000

$ python parsecsv.py
Sum of column 2: 18.000000
Avg of column 2: 3.000000

如果文件太大而无法一次全部加载到内存中,您可以readlines()使用csv.readline()

于 2012-09-12T04:53:28.630 回答