我的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)
最后,我如何将所有车辆的所有里程加起来?
答案 0 :(得分:0)
这应该有所帮助。迭代数据并使用字典,其中键是汽车模型,值的总和是值。
演示:(我正在使用字符串来显示逻辑)
s = """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"""
d = {}
for i in s.split("\n"):
val = i.strip().split()
if val[0] not in d:
d[val[0]] = sum(map(int, val[1:])) #map function to convert string to int
print d
<强>输出:强>
{'Nissan': 1989, 'Honda': 49341, 'Toyota': 541996, 'Ford': 40020, 'Bmw': 354839, 'Lexus': 8141}
答案 1 :(得分:0)
将csv文件读入2D数组或列表,制作python dict,并将数组中每个数组的第一个元素设置为字典键(在本例中为汽车名称)和其余元素数组中的每个aray将其解析为int并调用sum函数。将其添加到字典的值。
答案 2 :(得分:0)
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))
使用上面的代码
使用此链接检查输出
答案 3 :(得分:0)
你可以试试这个:
import csv
with open('filename.csv') as f:
final_data = [[a, sum(map(int, b))] for a, *b in csv.reader(f)]