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

How can I create a pandas dataframe column for each part-of-speech tag?

我有一个数据集,其中包含作为数据框的一列的标记化、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

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

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

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