我有一个 csv 文件,其中包含 4 个不同列中的大量值。使用 python,有没有办法将一个特定列中的值相加(比如第 1 列中的值)。我想找到一列中所有值的平均值
values_list = []
for row in b:
values_list.append(row[1])
我可以使用这种方法隔离特定列,但是有没有办法修改它以便能够添加值并找到特定列中的平均值
提前致谢
没有示例 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()