簡體   English   中英

將函數應用於numpy數組中的所有列

[英]applying function to all columns in an numpy array

我對numpy非常陌生。

只是想知道為什么這不起作用。

print items['description'] 

產量

0                            Продам Камаз 6520 20 тонн
1                                      Весь в тюнинге.
2    Телефон в хорошем состоянии, трещин и сколов н...
3    Отличный подарок на новый год от "китайской ap...
4        Лыжные ботинки в хорошем состоянии, 34 размер
Name: description, dtype: object

嘗試將此方法應用於此col中的所有行。

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' 

您收到該錯誤是因為'Series' object has no attribute 'split' .astype(str).astype(str)不會像您認為的那樣返回單個長字符串

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(' ')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM