我有一个数据集,该数据集由标记为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'])
答案 0 :(得分:0)
您可以使用apply方法,顾名思义,该方法会将给定函数应用于数据框或序列的每一行。这将返回一个序列,您可以将其作为新列添加到数据框中
df['Proper Nouns'] = df['POS_Description'].apply(
lambda row: [i[0] for i in row if i[1] == 'NNP'])
我假设POS_Description dtype是元组列表。