将synsets应用于pandas

时间:2017-06-07 18:27:49

标签: python pandas

这似乎是一个简单的问题,但我想尽可能避免循环。我在熊猫专栏中有以下数据集:

df['token']:
0     [If, you, can, only, visit, one, museum, in, N...
1     [Do, n't, let, the, neighborhood, ,, exterior,...
2     [Momofuku, Milk, Bar, is, one, of, those, plac...
3     [Have, you, been, here, ?, Tell, us, about, it...
4     [Add, the, Palmer, Trading, Company, to, your,...
5     [Porchetta, is, fast, and, simple, food, ., No...

名称:token,dtype:object

我想将wordnet wordnet.synsets功能应用于列表中的每个值(if,you,can etc),并且仅使用返回的第一个结果,例如:

 exterior [Synset('outside.n.01'), Synset('outside.n.02'), Synset('exterior.a.01')]

我希望能够使用apply只使用第一个结果:Synset(' outside.n.01')

1 个答案:

答案 0 :(得分:0)

根据您的评论,我认为您正在寻找的是一种方法,可以通过在单词上调用synsets来取代每个单词,这是正确的吗?您只需要一个包含接受单词列表的同义词的函数,并返回synset为每个单词返回的第一个元素:

def first(wordlist):
    # wordlist is a list of words, i.e. ['sun', 'shine', 'spotless']
    return [synsets(word)[0] for word in wordlist]

然后使用applymap在DataFrame的每个元素上运行它:

df.applymap(first)

这是你想要做的吗?