如果我有这个csv数据: (顺便说一下,我使用的是Python-3.4)
['20150101','2','1'] # row 0
['20150102','10','3'] # row 1
['20150103','4','2'] # row 2
['20150104','5','4'] # row 3
['20150105','12','6'] # row 4
....
我想:
我该怎么办?
我的实验:
import csv
f = open('file.csv','r')
r = csv.reader(f)
for i, n in enumerate(r):
print(int(n[1])*int(n[2]))
...仅计算同一行内的数据。
但我需要做的是使用来自行[i-1]的数据(即来自前一行的数据)计算row [i]中的数据,然后将整个文件的计算迭代到行[-1](最后一行)。
注意: 我不想为此导入任何模块(除了用于打开和读取文件的csv)。 如果可能的话,用尽可能少的行编写代码。 不要担心计算结果将在何处或者随着迭代的进行它是否会不断变化(它可以附加到列表或写入单独的csv文件等,但这不是问题)
答案 0 :(得分:0)
您必须在变量中创建Python列表,然后在将列的数据附加到列表时循环遍历行。循环后,循环遍历列表以执行计算。
例如,如果您想将每行第2列中的所有数字相乘:
import csv
f = open('file.csv','r')
r = csv.reader(f)
myData = []
for i, n in enumerate(r):
myData.append(int(n[1])
product = 1
for num in myData:
product *= num