在CSV文件中的特定列中添加值(在Sage Notebook中)

时间:2012-09-12 02:47:22

标签: python csv sage

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

values_list = []

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

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

提前致谢

1 个答案:

答案 0 :(得分: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 -th列的值,并计算总和和平均值。

#!/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()函数