Как эффективно l oop на этом кадре данных и выполнить функцию, используя встроенный numpy или pandas? - PullRequest
0 голосов
/ 07 января 2020

Я прочитал эту статью ранее и заметил, что функция pandas apply, iterrows и l oop - это очень медленный и эффективный способ работы с pandas фреймами данных.

Я выполняю анализ настроений на некоторых текстовых данных, но использование применения приводит к высокому использованию памяти и низкой скорости, подобной показанной в этом ответе.

%%time
data.merge(data.essay.apply(lambda s: pd.Series({'neg':sid.polarity_scores(s)['neg'],
                                                 'neu':sid.polarity_scores(s)['neu'],
                                                 'pos':sid.polarity_scores(s)['pos'],
                                                 'compound':sid.polarity_scores(s)['compound']})),
                       left_index=True, right_index=True)

Как я могу реализовать это, используя либо встроенная функция numpy или pandas? Изменить: - столбец содержит текстовые данные эссе

1 Ответ

0 голосов
/ 07 января 2020

Я нашел один способ ускорить выполнение этой функции с помощью pandarallel .

. При использовании функции pandas по умолчанию для применения потребовалось 9 минут 24 секунды,

Но с помощью pandarallel операция завершилась всего за 1 мин 7 с (при использовании 16 рабочих).

...