在pandas DataFrame列中存储列表

时间:2016-08-02 00:32:34

标签: python pandas dataframe nlp nltk

我正在尝试使用NLTK和Pandas进行一些文本处理。

我有DataFrame列'text'。我想添加列'text_tokenized',它将存储为嵌套列表。

我的文字标记代码是:

def sent_word_tokenize(text):
    text = unicode(text, errors='replace')
    sents = sent_tokenize(text)
    tokens = map(word_tokenize, sents)

    return tokens

目前,我正在尝试将此功能应用如下:

df['text_tokenized'] = df.apply(lambda row: sent_word_tokenize(row.text), axis=1)

这给了我错误:

ValueError: Shape of passed values is (100, 3), indices imply (100, 21)

不确定如何修复它以及这里有什么问题。

1 个答案:

答案 0 :(得分:2)

使用不同的轴解决了我自己的问题:

而不是:

df['text_tokenized'] = df.apply(lambda row: sent_word_tokenize(row.text), axis=1)

我用过:

df['text_tokenized'] = df.text.apply(lambda text: sent_word_tokenize(text))

虽然我不确定它为什么会起作用,如果有人能向我解释,我真的很感激。