这似乎是一个简单的问题,但我想尽可能避免循环。我在熊猫专栏中有以下数据集:
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')
答案 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)
这是你想要做的吗?