2016-06-12 19 views
0

私はnumpyに非常に新しいです。numpy配列のすべての列に関数を適用します。

なぜこれが機能しないのか不思議です。

print items['description'] 

このCOLのすべての行には、この方法を適用しようとすると
0       Продам Камаз 6520 20 тонн 
1          Весь в тюнинге. 
2 Телефон в хорошем состоянии, трещин и сколов н... 
3 Отличный подарок на новый год от "китайской ap... 
4  Лыжные ботинки в хорошем состоянии, 34 размер 
Name: description, dtype: object 

が得られます。

items['description'] = vectorize_sentence(items['description'].astype(str)) 

これは、ベクトル化文の関数定義です。

def vectorize_sentence(self, sentence): 
    # Tokenize 
    print 'sentence', sentence 

    tkns = self._tokenize(sentence) 
    vec = None 
    for tkn in tkns: 
     print 'tkn', tkn.decode('utf-8') 
     print type(tkn) 
     if self.model[tkn.decode('utf-8')]: 
      vec = sum(vec, self.model[tkn.decode('utf-8')]) 
    #vec = sum([self.model[x] for x in tkns if x in self.model]) 
    #print vec 
def _tokenize(self, sentence): 
    return sentence.split(' ') 

エラーメッセージ:

AttributeError: 'Series' object has no attribute 'split' 

答えて

1

'Series' object has no attribute 'split'ので、あなたがそのエラーを取得。あなたはそれが

items = pd.DataFrame({'description': ['bob loblaw', 'john wayne', 'lady gaga loves to sing']}) 
sentence = items['description'].astype(str) 
sentence.split(' ') 

sentence = ' '.join(x for x in items['description']) 
sentence.split(' ') 

を試してみて、その後、どのように私は何を達成んあなたの関数に

def _tokenize(self, sentence): 
    return ' '.join(x for x in items['description']).split(' ') 
+0

を実装するんだと思うように主に、.astype(str)は、単一の長い文字列を返しません。それから達成したい。ありがとう – aceminer

+0

あなたのために働くのですか? @aceminer –

+0

本当に。エラーが発生しました: "文字バッファオブジェクトが期待されました" – aceminer

関連する問題