我正在解析一个 csv 文件来执行一些基本的数据处理。我正在使用的文件是网站的用户活动日志,格式如下:
User ID, Url, Number of Page Loads, Number of Interactions
用户 ID 和 URL 是字符串,页面加载次数和交互次数是整数。
我正在尝试确定哪个 url 具有最佳的交互页面比率。
我正在努力的部分是获取唯一值并汇总列中的结果。
我编写了以下代码:
import csv
from collections import defaultdict
fields = ["USER","URL","LOADS","ACT"]
file = csv.DictReader(open('file.csv', 'rU'), delimiter=",",fieldnames=fields)
file.next()
dict = defaultdict(int)
for i in dict:
dict[i['URL']] += int(i['LOADS'])
这工作正常。它返回一个唯一 url 列表,其中包含字典中 url 的总加载数 -{ 'URL A' : 1000 , 'URL B' : 500}
问题是当我尝试向 url 键添加多个值时,我很难过。
我试过修改for循环来做:
for i in dict:
dict[i['URL']] += int(i['LOADS']), int(i['ACT'])
我收到了TypeError: unsupported operand type(s) for +=: 'int' and 'tuple'
。为什么第二个值被认为是一个元组?
我尝试添加 just int(i[ACT])
,效果很好。就在我同时尝试这两个值的时候。
我在 python 2.6.7;关于如何做到这一点以及为什么将其视为元组的任何想法?