2014-10-30 17 views
1

我有一個data.CSV文件方含以下數據從CSV文件的2列中獲取數據。檢查項目是否相同,並添加貨幣金額

列1,列2,量,欄3

名1,empId1,34.12,241682 -27638-CIGGNT

NAME2,empId2,22.14,241682-27638-OCGGINT

NAME3,empId3,18.9 8,241942-37190-GGDIV

NAME4,empId4,8.98,241942-37190-GGDIV

NAME5,empId5,234.098,241942-37190-CHYOF

大寫條目是貨幣金額。我想將列3數額條目添加到python中的字典中。但如果條目3中的條目重複它應該添加貨幣量並將其插入字典中。

輸出應該如下。

{'241682-27638-CIGGNT':'34.12','241682-27638-OCGGINT':'22.14','241942-37190-GGDIV':'27.92','241942-37190-CHYOF':'234.098'} 

我試圖通過下面的代碼,但它僅僅是更新(覆蓋貨幣量),之前的條目(而不是將它添加到以前的金額)

import csv 

path = "file_path" 

file=open(path +"data.CSV", "r") 
reader = csv.reader(file) 

counterlist = {} 

for row in reader : 

    #print row[3] 
    #print row[2] 
    if counterlist.has_key(row[3]): 

     row[2]+=row[3].value 
     counterlist.update({row[3]:row[2]}) 

    else: 
     counterlist.update({row[3]:row[2]}) 

print counterlist 

在此先感謝。

回答

2

使用defaultdict

from collections import defaultdict 

# ... 

counterlist = defaultdict(float) 
for row in reader: 
    counterlist[row[3]] += float(row[2])