我有一個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