У меня есть фрейм данных, который имеет следующие столбцы
- df ['Album'] (содержит названия альбомов artistX)
- df ['Tracks'] (содержит треки вальбомы исполнителяX)
- df ['Lyrics'] (содержит тексты песен)
Я пытаюсь подсчитать количество слов в df ['Lyrics'] ивернуть новый столбец с именем df ['wordcount'], а также подсчитать количество уникальных слов в df ['Lyrics'] и вернуть новый столбец с именем df ['uniquewordcount'].
Мне удалосьполучить df ['wordcount'], посчитав каждую строку в df ['lyrics'] минус пробел.
totalscore = df.Lyrics.str.count('[^\s]') #count every word in a track
df['wordcount'] = totalscore
df
Мне удалось посчитать уникальные слова в df ['Lyrics']
import collections
from collections import Counter
results = Counter()
count_unique = df.Lyrics.str.lower().str.split().apply(results.update)
unique_counts = sum((results).values())
df['uniquewordcount'] = unique_counts
И это дает мне счетчик всех уникальных слов в df [' Lyrics '], что и предназначается для кода, но я хочу, чтобы уникальные слова были в лирикеНа каждом треке мой Python не очень хорош в настоящее время, поэтому решение может быть очевидным для всех, но не для меня.Я хотел бы, чтобы кто-то указал мне правильное направление, как получить количество уникальных слов для каждого трека.
ожидаемый результат:
Album Tracks Lyrics wordcount uniquewordcount
A Ball Ball is life and Ball is key 7 5
Pass Pass me the hookah Pass me the 7 4
что я получил:
Album Tracks Lyrics wordcount uniquewordcount
A Ball Ball is life and Ball is key 7 9
Pass Pass me the hookah Pass me the 7 9