Как я могу создать столбец данных pandas для каждого тега части речи? - PullRequest
0 голосов
/ 02 апреля 2019

У меня есть набор данных, который состоит из токенизированных POS-тегированных фраз в виде одного столбца кадра данных:

Текущий кадр данных

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

Желаемое решение

Сейчас я пытаюсь что-то подобное для одной строки:

if 'NNP' in df['Description_POS'][96][0:-1]:
df['Proper Noun'] = df['Description_POS'][96]

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

Редактировать: я пробовал рекомендованное решение, и, похоже, оно работает, но есть проблема.

это был мой фрейм данных: Оригинальный фрейм данных

После реализации рекомендованного кода

df['Proper Nouns'] = df['POS_Description'].apply(
    lambda row: [i[0] for i in row if i[1] == 'NNP']) 

это выглядит так: Фрейм данных после созданияколонка имен собственных

1 Ответ

0 голосов
/ 02 апреля 2019

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

df['Proper Nouns'] = df['POS_Description'].apply(
    lambda row: [i[0] for i in row if i[1] == 'NNP'])

Я предполагаю, что тип DOS POS_Description будет списком кортежей.

...