Как посчитать количество вхождений слова в столбец

У меня есть столбец с именем word_count, который содержит количество всех слов в обзоре. Как узнать, сколько раз слово awesome встречалось в каждой строке этого столбца, и использовать метод.apply(), чтобы превратить его в новый столбец, скажем, 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

Должен быть создан удивительный столбец, и он должен содержать номер появления удивительного принятого столбца word_count формы

2 ответа

Что я понял из вас, так это то, что у вас есть словарь под названием 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 раза и удивительный 1 раз. Чтобы добавить еще один столбец, вам нужно создать массив, который будет считать "удивительным" для каждого текста следующим образом:

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

и затем добавьте строку в таблицу:

products['awesome'] = counter

и вот оно!

Вот код для функции 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 был создан для хранения количества 'awesome' в каждой строке столбца вашего продукта ['word_count']. Так что в new_dict это должно быть: new_dict = {'awesome': [0,0,1,...2,1]}. Однако, если вы планируете считать другие слова, этот метод будет слишком медленным.

Другие вопросы по тегам