Python 键值计数过滤器字典

Python 键值计数过滤器字典,python,dictionary,dataset,frequency,word-frequency,Python,Dictionary,Dataset,Frequency,Word Frequency,我试图写一个过滤器,在这里我试图找到键和值的频率计数。在尝试其中一个代码块时,我面临以下错误困难 数据是关于twitter用户和相应的关键字的。我试图获得用户的tweet计数的频率,以及每个用户发布的唯一关键字的计数。数据集大约有1000行,其中只有20行是我在Input中显示的 输入 tweetcricscore 7.15E+17 3/30/2016 #wt20 tweetcricscore 7.15E+17 3/30/2016 #sausvsvic tweetcric

我试图写一个过滤器,在这里我试图找到键和值的频率计数。在尝试其中一个代码块时,我面临以下错误困难

数据是关于twitter用户和相应的关键字的。我试图获得用户的tweet计数的频率,以及每个用户发布的唯一关键字的计数。数据集大约有1000行,其中只有20行是我在Input中显示的

输入

tweetcricscore  7.15E+17    3/30/2016   #wt20
tweetcricscore  7.15E+17    3/30/2016   #sausvsvic
tweetcricscore  7.15E+17    3/30/2016   #wt20
tweetcricscore  7.15E+17    3/30/2016   #sausvsvic
tweetcricscore  7.14E+17    3/28/2016   #wt20
tweetcricscore  7.14E+17    3/28/2016   #sausvsvic
tweetcricscore  7.14E+17    3/27/2016   #wt20
tweetcricscore  7.14E+17    3/27/2016   #sausvsvic
tweetcricscore  7.14E+17    3/27/2016   #wt20
tweetcricscore  7.14E+17    3/27/2016   #sausvsvic
tweetcricscore  7.14E+17    3/26/2016   #wt20
tweetcricscore  7.14E+17    3/26/2016   #canvsnk
tweetcricscore  7.14E+17    3/26/2016   #wt20
tweetcricscore  7.14E+17    3/26/2016   #sausvsvic
tweetcricscore  7.14E+17    3/26/2016   #wt20
tweetcricscore  7.14E+17    3/26/2016   #sausvsvic
tweetcricscore  7.14E+17    3/26/2016   #wt20
tweetcricscore  7.14E+17    3/26/2016   #sausvsvic
tweetcricscore  7.13E+17    3/23/2016   #wt20
tweetcricscore  7.13E+17    3/23/2016   #indvsban
代码:

预期产量

tweetcricscore  234 #afgvssco   51
tweetcricscore  234 #afgvszim   46
tweetcricscore  234 #banvsire   12
tweetcricscore  234 #banvsned   46
tweetcricscore  234 #canvsnk    1
tweetcricscore  234 #cricket    178
tweetcricscore  234 #engvswi    46
tweetcricscore  234 #hkvssco    23
tweetcricscore  234 #indvsban   1
tweetcricscore  234 #sausvsvic  8
tweetcricscore  234 #wt20   56
我得到以下错误

28 
     29         for key,values in od.iteritems():
---> 30                 writer.writerow([key[0],l.count(key[0]),key[3],values])
     32 

IndexError: tuple index out of range
代码只是一个过程程序的一部分,这部分向我展示了过滤输入时的错误。
如有任何建议,我们将不胜感激。提前感谢

我无法运行您提供的示例,但在阅读代码的基础上,您似乎正在生成一个
dict
,其中键是元组,每个元组有两个元素:

key_val = row[0],row[3]
d[key_val] +=1
然后生成
OrderedDict
,在其中使用相同的键并迭代其中的项:

for key,values in od.iteritems():
    writer.writerow([key[0],l.count(key[0]),key[3],values])

在第二行,您尝试从
key
中获取索引3处的元素,因为它只有两个元素,所以自然会失败。如果您将
键[3]
改为
键[1]
,它应该可以按预期工作。

谢谢……)这绝对有效,但在下一段代码中遇到了一些问题:(我也可以使用此代码的一些帮助。您的
key\u val=row[0],row[3]
是一个包含2项的元组;但是
writer.writerow([key[0],l.count(key[0]),key[3],values])
引用了第4项。因此发生了错误。@ccf我可以使用此项的一些帮助
for key,values in od.iteritems():
    writer.writerow([key[0],l.count(key[0]),key[3],values])