我有一个数据集,它由标记化的,POS标记的短语组成,作为数据帧的一列:
我想在数据框中创建一个新列,仅包含上一列中的专有名词:
现在,我正在为这一行尝试这样的事情:
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'])
您可以使用apply方法,顾名思义,它将给定函数应用于数据框或系列的每一行。这将返回一个系列,您可以将其添加为数据框的新列
df['Proper Nouns'] = df['POS_Description'].apply(
lambda row: [i[0] for i in row if i[1] == 'NNP'])
我假设POS_Description dtype是一个元组列表。