我在这里有一个CSV文件:http://www.filedropper.com/excel,看起来像http://pastebin.com/ammzv4FK。
我想做的是:
每年使用相应的行,找到以月为单位的数字并将它们合计,并将它们分配给变量。
所以2000年的第一年,名单看起来像这样:
year2000 = ['14744', '2947', '14905', '1748', '2859', '11778', '1453', '5255', '14806', '1858', '10763', '6000']
然后,一旦我有了这个列表,我可以将列表中的元素从字符串转换为整数,并使用sum()命令对它们求和。
我可以打印出行但是我在排除年份数字时遇到了问题,然后将其余部分存储到变量中,因为我的列表是这样的:
['2000, 14744, 2947, 14905, 1748, 2859, 11778, 1453, 5255, 14806, 1858, 10763, 6000']
作为一个大字符串,而不是单个元素,我的列表一次打印出所有年份,所以我似乎无法弄清楚如何将它们存储到变量中并将它们分开计算。
这是我的代码:
with open("file.csv","r") as f:
for i in range(1):
next(f)
for x in f:
x=x.split()
print (x)
但是当print(x)
运行时,它会全部打印出来,如何将每年的内容存储在一个变量中,同时排除实际的年份数?
我正在使用Python 3,谢谢。
答案 0 :(得分:1)
如果您正在获得这样的行,您可能没有使用csv阅读器。您应该使用csv
模块并将每行存储在dict
中,并将年份作为键。这仅适用于您的数据由整数组成的情况。
data = {}
with open("data.csv") as f:
reader = csv.reader(f, delimiter="\t")
reader.next() # Skip header
for row in reader:
row = list(map(int, row))
data[row[0]] = row[1:]
要获得总和,请使用内置的sum
函数。