Возвращение оболочки Synset ('') при использовании DataFrame.apply () для генерации значений - PullRequest
0 голосов
/ 17 сентября 2018

Когда я передаю функцию через DataFrame.apply (), я получаю значения, заключенные в то, что я предполагаю, является их типом объекта.Я уже видел эту ошибку для двух приложений: одно с использованием библиотеки Wordnet NLTK (возвращает Synset ('значение'), а другое с Datetime (Datetime ('value')).

Я нарисовалНиже приведено несколько примеров для получения кода, поэтому я не понимаю, что делаю неправильно.

Я пытался использовать эту функцию - Применение синтаксиса к пандам (а также другой вариант) - но по какой-то причине он возвращает Series (хотя я и указал, что это фрейм данных), и поэтому .applymap () не работает. Вариации с использованием .map () и просто .apply() также были проблематичны.

Вот что у меня есть (используя панд и несколько библиотек nltk):

df_agri_clean['Synsets'] = [x[0] for x in df_agri_clean['Category'].apply(wordnet.synsets)]
df_agri_clean

Вот вывод:

    Category        Synsets
0   agricultural    Synset('agricultural.a.01')
1   domestic        Synset('domestic.n.01')
2   animal          Synset('animal.n.01')
3   services        Synset('services.n.01')
5   food            Synset('food.n.01')

Мой желаемыйВывод будет:

    Category        Synsets
0   agricultural    agricultural.a.01
1   domestic        domestic.n.01
2   animal          animal.n.01
3   services        services.n.01
5   food            food.n.01

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

Заранее спасибо за ваше время.

1 Ответ

0 голосов
/ 17 сентября 2018

Решил, добавив .name () к x [0]. Смотрите ответ Алваша здесь .:

df_agri_clean['Synsets'] = [x[0].name() for x in df_agri_clean['Category'].apply(wordnet.synsets)]
print(df_agri_clean['Synsets'])

Выход:

    Category        Synsets
0   agricultural    agricultural.a.01
1   domestic        domestic.n.01
2   animal          animal.n.01
3   services        services.n.01
5   food            food.n.01
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...