本文主要介绍python读取csv文件,并创建成字典的方法,有需要的朋友可以参考一下:
我有一个像这样的csv数据集:
Copy A, 10, USA B,30, UK C,4,IT A,20,UK B,10,USA我想阅读这些csv行并提供以下输出:
Copy A has ran 30 miles with average of 15. B has ran 30 miles with average of 20. C has ran 4 miles with average of 4.到目前为止,我的解决方案是读取csv数据并将它们转换为字典然后迭代它们以查看“A”重复了多少次以及它必须为平均值计算的值以及最终生成结果.我已经编写了这段代码,但是我很难有效地计算A重复的次数并将里程相加以创建我的最终输出.有什么想在Python中做到这一点?我在C#中很容易做到这一点,但我对Python不太好.
Copy def main(filename): f = open(filename,'r') labels = ['name','miles','country'] data = csv.DictReader(f,labels,delimiter=',') for line in data: print (line['name']+" " + "has ran" +" "+ line['miles']+" "+"miles") f.close()
最佳答案
您可以使用defaultdict存储值,然后将其打印出来:
Copy import csv from collections import defaultdict with open(filename, 'r') as handle: reader = csv.DictReader(handle, ['name', 'miles', 'country']) data = defaultdict(list) for line in reader: data[line['name']).append(int(line['miles'])) for runner, distances in data.items(): print '{} ran a total of {} miles and an average of {} miles'.format( runner, sum(distances), sum(distances) / float(len(distances)) )以上就是“python读取csv文件,并创建成字典”的详细内容,想要获取更多Python教程请持续关注编程学习网!
扫码二维码 获取免费视频学习资料
- 本文固定链接: http://phpxs.com/post/8076/
- 转载请注明:转载必须在正文中标注并保留原文链接
- 扫码: 扫上方二维码获取免费视频资料
查 看2022高级编程视频教程免费获取