1

我有一个名为word_count的列,其中包含评论中所有单词的计数。我怎样才能找到该列的每一行中出现awesome一词的次数,并使用.apply()方法将其变成一个新列 say awesome

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

必须创建 awesome 列,它必须包含从 word_count 列中取出的 awesome 的出现次数

4

2 回答 2

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,上面的代码适用于“真棒”这个词。创建 new_dict 是为了在您的 product['word_count'] 列的每一行中存储 'awesome' 的计数。所以在 new_dict 中应该是:new_dict = {'awesome': [0,0,1,...2,1]}。但是,如果您打算计算其他单词,则此方法太慢了。

于 2017-08-09T17:08:55.560 回答
0

我从您那里了解到的是,您有一本名为 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

你有它!

于 2015-10-11T20:28:10.607 回答