如何为每个词性标记创建pandas数据框列?

问题描述 投票:0回答:1

我有一个数据集,它由标记化的,POS标记的短语组成,作为数据帧的一列:

Current Dataframe

我想在数据框中创建一个新列,仅包含上一列中的专有名词:

Desired Solution

现在,我正在为这一行尝试这样的事情:

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

但后来我不知道如何为每一行循环这个,以及如何获得包含专有名词的元组。我现在很新,不知道该怎么用,所以任何帮助都会非常感激!

编辑:我尝试了推荐的解决方案,它似乎工作,但有一个问题。

这是我的数据框:Original dataframe

实施推荐的代码后

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

它看起来像这样:Dataframe after creating a proper nouns column

python pandas nltk pos-tagger
1个回答
0
投票

您可以使用apply方法,顾名思义,它将给定函数应用于数据框或系列的每一行。这将返回一个系列,您可以将其添加为数据框的新列

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

我假设POS_Description dtype是一个元组列表。

© www.soinside.com 2019 - 2024. All rights reserved.