Как посчитать количество вхождений слова в столбец
У меня есть столбец с именем 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
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]}. Однако, если вы планируете считать другие слова, этот метод будет слишком медленным.