Python Pandas: подсчитайте количество слов во фрейме данных

Имеется большое имя фрейма данных dataframe1. например (всего несколько):

 date                  text                             name
 1      I like you hair, do you like it              screen1
 2      beautiful sun and wind                       screen2
 3      today is happy, I want to got school         screen3
 4      good movie                                   screen4
 5      thanks god                                   screen1
 6      you are my son and I love you                screen2
 7      the company  is good                         screen1
 8      no one can help me, only you                 screen2
 9      the book is good and I read it everyday      screen3
 10      water is the source of love                 screen4
 11     I like you hair, do you like it              screen1
 12     my love man is leaving                       screen2

Я хочу вычислить количество слов текста каждого имени (например, всего текста screen1 в dataframe1), используя функцию count_noun (str). Далее, con_noun (str) в порядке и закончено.

Я хочу извлечь весь текст с тем же именем во фрейме данных и вычислить количество существительных. Пожалуйста, не сосредотачивайтесь на функции count_noun (str), и я ее закончил.

Мой код:

import pandas as pd
import numpy as np

screen_name_unique = list(set(dataframe1['name']))
for name in screen_name_unique:
   dataframe_text = dataframe1[dataframe1.name == name]
   count = noun_count(dataframe['text'])



 def noun_count (str):
    words_len = len(str)
    return words_len

Я обнаружил, что это неправильно, и не знаю, как его решить, например, извлеките весь текст name1 в строку и отправьте его в function: noun_count (str), пожалуйста, дайте мне свою руку, спасибо!


person tktktk0711    schedule 11.07.2016    source источник
comment
Если вы хотите получить дополнительную информацию об этом, пожалуйста, сообщите мне   -  person tktktk0711    schedule 11.07.2016
comment
Что случилось? Откуда вы знаете, что noun_count не ошибается? Попробуйте вывести счетчик, потому что сейчас вы ничего не вернете.   -  person Merlin    schedule 11.07.2016
comment
спасибо за комментарии, пожалуйста, не сосредотачивайтесь на функции noun_count (). Я просто хочу извлечь весь текст каждого имени и подсчитать количество слов существительных. Я понятия не имею, как решить эту проблему после извлечения текста для каждого имени. Следующий шаг понятия не имею.   -  person tktktk0711    schedule 11.07.2016
comment
@Merlin, функция noun_count (Str), параметр str - строковый тип   -  person tktktk0711    schedule 11.07.2016
comment
если вы не включите эту функцию, будет сложно понять, что не работает.   -  person Merlin    schedule 11.07.2016
comment
@Merlin, спасибо за комментарий, я просто привожу простую функцию noun_count. Пожалуйста, не сосредотачивайтесь на этой функции, дело в том, что я должен получить текст каждого имени и преобразовать его в строку.   -  person tktktk0711    schedule 11.07.2016
comment
google: количество слов с пандами - он возвращает много сообщений SO. это дубликат.   -  person Merlin    schedule 11.07.2016


Ответы (1)


Я решил это, используйте функцию apply () для подсчета

import pandas as pd
import numpy as np

screen_name_unique = list(set(dataframe1['name']))
for name in screen_name_unique:
  dataframe_text = dataframe1[dataframe1.name == name]
  dataframe_text['text'].apply(noun_count)



def noun_count (str):
  words_len = len(str)
  return words_len
person tktktk0711    schedule 12.07.2016
comment
len(str) будет вычислять количество символов, а не количество слов. - person pnv; 29.09.2017