adding values from a csv column and getting the mean. beginner help

M.F. morefool at gmail.com
Wed Dec 11 20:36:40 EST 2013


On 12/12/2013 03:10 AM, brian cleere wrote:
> I know the problem is with the for loop but don't know how to fix. Any help with explanation would be appreciated.
>
> #!/bin/env python
> import csv
> import sys
>
> if len(sys.argv) < 3:
>      print('Please specify a filename and column number: {} [csvfile] [column]'.format(sys.argv[0]))
>      sys.exit(1)
>
> filename = sys.argv[1]
> column = int(sys.argv[2])


> for line in filename() , column ():
>      elements = line.strip().split(',')
>      values.append(int(elements[col]))

"filename" is a string, and "column" is an integer, the interpreter 
should warn you that they are not callable
the above three lines could be changed to
==>
values = []
for line in open(filename):
      elements = line.strip().split(',')
      values.append(int(elements[column]))

or now that you have the "csv" module, you can use "csv.reader" to parse 
the file:
==>
values = [ row[column] for row in csv.reader(open(filename, 'rb')) if 
len(row) > column ]

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




More information about the Python-list mailing list