2017-06-07 5 views
0

これは簡単な質問のようですが、可能であればループを避けたいと思います。パンダにsynsetsを適用する

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... 

名:トークン、DTYPE:私はパンダの列内の次のデータセット持っているオブジェクト

を私は、あなたは、あれば(リスト内のそれぞれの値に機能wordnet.synsets WordNetの適用したいのですがなど缶)とのみ、例えばバック所与の最初の結果を使用します。私は最初の結果を使用するために適用され使用できるようにしたい

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

を:Synset(「outside.n.01」)を

+0

私はちょっと混乱しています。最初の結果しか使用していないのであれば、他の機能のいずれかでその機能を実行する必要はありますか?私。リストの最初の要素だけで 'Synset'を呼び出す関数を適用できますか? – OldGeeksGuide

+0

私はnltkやwordnetに関して専門家ではありませんが、関数に個々の単語を渡すだけで、リストを返すことができると思います。 –

答えて

0

ご意見から、私はあなたが探していると思うのは、単語のそれぞれを最初の結果で置き換える方法です。synsetsという単語には、それは正しいですか?あなただけの単語のリストを受け入れるのsynsetをラップ機能を必要とし、それらのそれぞれのためのリターンをsynsetものの最初の要素を返します。

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

そして、データフレームの各要素に対して、それを実行するためにapplymap使用します。

df.applymap(first) 

これはあなたがやろうとしていることですか?

+0

applymapに2つのPandasカラムを渡すことは可能ですか? –

+0

私はその答えを見つけたと思う[Value '] = df.apply(ラムダ行:my_test(行[' a ']、行[' c '])、軸= 1) –

+0

2つの列を渡すあなたはdf [['col1'、 'col2']]を実行できます。applymap(...) – OldGeeksGuide

関連する問題