Подсчет в сколько строк существует значение - PullRequest
1 голос
/ 06 ноября 2019

Я бы хотел посчитать частоту слов во фрейме данных. Вот пример того, чего я пытаюсь достичь.

words = ['Dungeon',
'Crawling',
'Puzzle',
'RPG',]

desc = 
0       [Dungeon, count, game, kid, draw, toddler, Unique]
1       [Beautiful, simple, music, application, toddle]
2       [Fun, intuitive, number, game, baby, toddler]

Обратите внимание, что desc - это фрейм данных для панд 1690 строк.

Теперь я хотел бы проверить words[i] in desc Я делаюне хочу иметь вложенный цикл, поэтому сделал функцию, которая просто проверяет, находится ли слово в дескрипторе, а затем использует apply() для каждой строки, а затем использует sum.

Функция, которую я получил:

def tmp(word, desc):
    return (word in desc)

Однако, когда я использую следующий код: desc.apply(tmp, args = words[0]), я получаю сообщение об ошибке: tmp() takes 2 positional arguments but 8 were given. Однако, когда я вручную использую его со значениями tmp(words[0], desc[0]), он работает просто отлично ...

1 Ответ

7 голосов
/ 06 ноября 2019

Если хотите избежать циклов, используйте конструктор DataFrame с DataFrame.isin, а для значений True используйте sum:

s = pd.DataFrame(desc.tolist()).isin(words).sum(axis=1)
print(s)
0    1
1    0
2    0
dtype: int64
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...