【问题标题】:How to count the number of occurrence of a word in a column如何计算一个单词在列中出现的次数
【发布时间】:2016-01-09 04:42:44
【问题描述】:

我有一个名为 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

【问题讨论】:

  • 你能不能回答:str(products['awesome'])[0]
  • 请画出适当的矩阵并与我们分享以说明您的目的。

标签: python dictionary count graphlab


【解决方案1】:

我从您那里了解到的是,您有一本名为 products 的字典,其中包含各种文本的单词计数器:

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}] }

例如,第一个文本包含 2 次“holder”和 1 次 awesome。 要添加另一列,您需要创建在每个文本上计算“真棒”的数组,如下所示:

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

然后将该行添加到表中:

products['awesome'] = counter

你有它!

【讨论】:

  • IndexError:用于索引的类型无效。我收到此错误
  • 你能写出products到底是什么吗?很难知道他的类型。
【解决方案2】:

这里是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 是为了在您的 product['word_count'] 列的每一行中存储 'awesome' 的计数。所以在 new_dict 中应该是:new_dict = {'awesome': [0,0,1,...2,1]}。 但是,如果你打算数其他的话,这种方法太慢了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-12
    • 2012-01-06
    • 2019-06-01
    • 1970-01-01
    • 2011-08-04
    • 1970-01-01
    相关资源
    最近更新 更多