如何计算列中单词的出现次数

时间:2015-10-11 18:36:04

标签: python dictionary count graphlab

我有一个名为 word_count 的列,其中包含评论中所有字词的计数。如何找到该列每行中出现 awesome 这个词的次数,并使用 .apply()方法将其设置为新列说真棒

products['word_count'][1]
   {'and': 3L,'bags': 1L,'came': 1L, 'disappointed.':1L,'does':1L,'early':1L,'highly': 1L,'holder.': 1L, 'awesome': 2L}

我如何获得输出

products['awesome'][1]
   2

The awesome column must be created and it must contain the number of occurrence of awesome taken form word_count column

2 个答案:

答案 0 :(得分:0)

我对你的理解是,你有一本名为“产品”的字典,其中包含各种文字的字计数器:

products = {'word_count' : [{'holder.': 2, 'awesome': 1}, {'and': 3,'bags': 1,'came': 1, 'disappointed.':1,'does':1,'early':1,'highly': 1,'holder.': 1, 'awesome': 2}] }
例如,第一个文本包含" holder" 2次,真棒1次。 要添加另一个列,您需要创建一个重要的数组' awesome'每篇文章如下:

counter = []
for i in range(len(products['word_count'])):
    counter.append(products['word_count'][i]['awesome'])

然后将行添加到表中:

products['awesome'] = counter

你有它!

答案 1 :(得分:0)

这是python函数counting_words的代码:

def counting_words(x):
    if (products['word_count'][x].has_key('awesome')):
        return products['word_count'][x]['awesome']
    else:
        return 0

这是代码的另一部分

new_dict = {}
for x in range(len(products)):
    if (x==0):
        new_dict['awesome'] = [counting_words(x)]
    new_dict['awesome'].append(counting_words(x))

newframe = graphlab.SFrame(new_dict)
products.add_columns(newframe)

我认为您使用的是graphlab,上面的代码适用于'awesome'这个词。创建new_dict是为了在产品['word_count']列的每一行中存储'awesome'的计数。所以在new_dict中它应该是:new_dict = {'awesome':[0,0,1,... 2,1]}。 但是,如果你打算计算其他单词,这种方法会太慢。