Я пытаюсь получить средние оценки для наиболее распространенных слов в моих фреймах данных.В настоящее время мой фрейм данных имеет этот формат.
sentence | score
"Sam I am Sam" | 10
"I am Sam" | 5
"Paul is great Sam" | 5
"I am great" | 0
"Sam Sam Sam" | 15
Мне удалось успешно получить наиболее распространенные слова, используя эту ошибку кода.Это очистило мой dataframe и удалило все стоп-слова.Это дало мне эту серию.
from collections import Counter
nltk.download('stopwords')
df_text = df[['sentence','score']]
df_text['sentence'] = df_text['sentence'].replace("[a-zA-Z0-9]{14}|rt|[0-9]",'',regex=True, inplace=False)
df_text['sentence'] = df_text['sentence'].apply(lambda x: ' '.join([word for word in x.split() if word not in (stop)]))
top_words =pd.Series(' '.join(df_text['sentence']).lower().split()).value_counts()[:25]
Words | Freq
Sam | 7
I | 3
Am | 3
Great | 2
is | 1
Я понимаю, что groupby. (). Mean () - это действительно важная функция, которую мне нужно использовать, но я не понимаю, как бы я попытался получить счетколонка.Это идеальный выход, который я пытаюсь получить.Я показал математику, чтобы дать логику о том, как я получил средние.
Words | Avg
Sam | 35/7 = 5
I | 15/3 = 5
Am | 15/3 = 5
Great | 5/2 = 2.5
is | 5/1 = 5