0

我在这里有一个 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,谢谢。

4

1 回答 1

1

如果你得到这样的行,你可能没有使用 csv 阅读器。您应该使用该csv模块并将每一行存储在 adict中,以年份为键。这仅在您的数据由整数组成时才有效。

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函数。

于 2012-11-18T01:35:57.537 回答