我有一个CSV数据集是这样的:阅读CSV文件,并创建字典
A, 10, USA
B,30, UK
C,4,IT
A,20,UK
B,10,USA
我想读这个CSV线,并提供以下的输出:
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不太好。
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()
如果csv数据集中的行数超过1000,您认为这是一个很好的解决方案吗?我希望这个解决方案不是一个O(n^2),这会把事情搞砸。 – user843681 2013-03-14 02:45:00
@ user843681:它是'O(n)'。您通过CSV迭代一次,然后遍历结果打印出来。 – Blender 2013-03-14 02:46:06