在csv文件Python代码中添加数字

在csv文件Python代码中添加数字,python,csv,dictionary,sum,key,Python,Csv,Dictionary,Sum,Key,我的csv文件如下所示: Honda 100 90 345 3453 45353 Toyota 453 656 909 5435 534543 Nissan 123 32 535 345 954 Ford 543 54 345 34543 4535 Lexus 345 545 345 3453 3453 Bmw 345 343 353 345 353453 如何添加每行的总英里数,并将其连接到汽车制造的钥匙

我的csv文件如下所示:

Honda   100 90  345 3453    45353 
Toyota  453 656 909 5435    534543 
Nissan  123 32  535 345     954   
Ford    543 54  345 34543   4535 
Lexus   345 545 345 3453    3453  
Bmw     345 343 353 345     353453
如何添加每行的总英里数,并将其连接到汽车制造的钥匙

因此,从CSV开始,我希望我的python代码如下

Honda:79734397
Toyota:2343434 . (the numbers are for demonstration and not exact)

同样,在最后,我如何将所有车辆的里程相加?

这应该会有所帮助。迭代数据并使用字典,其中键是carmodel,值之和是值

演示:(我使用字符串只是为了显示逻辑)

输出:

{'Nissan': 1989, 'Honda': 49341, 'Toyota': 541996, 'Ford': 40020, 'Bmw': 354839, 'Lexus': 8141}

将csv文件读入2D数组或列表,制作python dict,并将数组中每个数组的第一个元素设置为字典键(本例中为汽车名称),对于数组中每个数组的其余元素,将其解析为int并调用sum函数。将其添加到dict的值中

import csv
total=[]
with open('some.csv', newline='') as csvfile:
  spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|')
  for row in spamreader:
    print(row[0],end=' ')
    total.append(sum(list(map(int,list(filter(None, row[1:]))))))
    print(sum(list(map(int,list(filter(None, row[1:]))))))
  print('Total: ',sum(total))
使用上述代码

使用此链接检查输出

您可以尝试以下方法:

import csv
with open('filename.csv') as f:
  final_data = [[a, sum(map(int, b))] for a, *b in csv.reader(f)]

查看我如何将末尾的所有英里数相加为总英里数?
import csv
with open('filename.csv') as f:
  final_data = [[a, sum(map(int, b))] for a, *b in csv.reader(f)]