2012-09-12 92 views
0

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

values_list = [] 

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

我可以用這個方法隔離一個特定的列,但有沒有修改,爲了能夠添加值,並找到一種方式平均在特定列

在此先感謝

回答

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腳本LO將csv廣告到內存中,解析它,收集第012列的值,並計算總和和平均值。

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

循環