提取熊猫数据框

时间:2021-02-23 14:06:59

标签: python pandas stemming

我有 tweet 数据集(取自 NLTK),它目前位于 Pandas 数据框中,但我需要阻止它。我尝试了很多不同的方法并得到了一些不同的错误,例如

AttributeError: 'Series' object has no attribute 'lower'
and
KeyError: 'text'

我不理解 KeyError 因为该列绝对称为“文本”,但是我知道我需要将数据框更改为字符串才能使词干分析器正常工作(我认为)。

Here is an example of the data

from nltk.stem.snowball import SnowballStemmer
stemmer = SnowballStemmer("english")

negative_tweets = twitter_samples.strings('negative_tweets.json')

negtweetsdf = DataFrame(negative_tweets,columns=['text'])

print(stemmer.stem(negtweetstr))

1 个答案:

答案 0 :(得分:0)

您需要对系列应用词干提取功能,如下所示

negtweetsdf.apply(stemmer.stem)

这将创建一个新系列。

需要单个字符串值或类似值的函数不能简单地在 Pandas 数据帧或系列上工作。它们需要应用于整个系列,这就是使用 .apply 的原因。

这是一个在数据框列中包含列表的工作示例。

from nltk.stem.snowball import SnowballStemmer
from nltk.tokenize import TweetTokenizer
stemmer = SnowballStemmer("english")
import pandas as pd

df = pd.DataFrame([['some extremely exciting tweet'],['another']], columns=['tweets'])

# put the strings into lists
df = pd.DataFrame(df.apply(list,axis=1), columns=['tweets'])

# for each row (apply) for each item in the list, apply the stemmer
# return a list containing the stems
df['tweets'].apply(lambda x: [stemmer.stem(y) for y in x])