Как реализовать функцию в столбце pandas dataframe - PullRequest
0 голосов
/ 04 февраля 2019

Я пытаюсь применить функцию textacy.extract.subject_verb_object_triples к столбцу pandas df.Функция возвращает пустые объекты генератора, вместо subject_verb_object_triples, когда применяется следующим образом:

sp500news3['title'].apply(lambda x: textacy.extract.subject_verb_object_triples)

или

sp500news3['title'].apply(textacy.extract.subject_verb_object_triples)

Я также пробовал:

import spacy
import textacy
def extract_SVO1(text):
    new_doc = textacy.extract.subject_verb_object_triples(text)
    new_list = list(new_doc)
    text = new_list

sp500news3['title'] = sp500news3['title'].apply(extract_SVO1)

Какя могу реализовать функцию в моем столбце dataframe, чтобы вернуть правильный вывод функции?

1 Ответ

0 голосов
/ 05 февраля 2019

Причина в том, что textacy.extract.subject_verb_object_triples возвращает генератор, который должен быть преобразован в некий итеративный тип.Оба ваших подхода работоспособны, но нуждаются в некоторой модификации.

Первый способ: использовать генераторы

sp500news3['title'].apply(lambda x: textacy.extract.subject_verb_object_triples).apply(pd.Series)

Второй способ: написать отдельную функцию для применения

def extract_SVO1(text):
    new_doc = textacy.extract.subject_verb_object_triples(text)
    new_list = list(new_doc)
    return new_list
...