如何将Python中for循环的情感分析结果存入DataFrame?
如何将Twitter推文情感分析结果存入DataFrame?
嘿,这事儿超简单!你只需要先把循环里的推文文本和情感结果分别存到两个列表里,之后用这两个列表直接构建DataFrame就行。我帮你调整了代码,来看看:
首先别忘了导入pandas(毕竟要用到DataFrame嘛):
import pandas as pd from textblob import TextBlob
然后修改你的循环,在里面顺手收集数据:
# 先初始化两个空列表,用来存我们需要的内容 tweet_content = [] tweet_sentiment = [] x = 1 for tweet in public_tweets: print(x) print(tweet.text) analysis = TextBlob(tweet.text) print(analysis.sentiment) # 把当前推文的文本和情感结果添加到对应列表里 tweet_content.append(tweet.text) tweet_sentiment.append(analysis.sentiment) x = x + 1
最后一步,用这两个列表创建你要的DataFrame:
# 构建DataFrame,指定列名就是你需要的'Tweets'和'Sentiment' result_df = pd.DataFrame({ 'Tweets': tweet_content, 'Sentiment': tweet_sentiment }) # 可以打印前几行看看效果 print(result_df.head())
小补充:analysis.sentiment返回的是一个包含**极性(polarity)和主观性(subjectivity)**的元组,如果之后你想把这两个值分开成单独的列,也可以改成这样:
# 初始化三个列表分别存数据 tweet_content = [] sentiment_polarity = [] sentiment_subjectivity = [] x = 1 for tweet in public_tweets: print(x) print(tweet.text) analysis = TextBlob(tweet.text) print(analysis.sentiment) tweet_content.append(tweet.text) sentiment_polarity.append(analysis.sentiment.polarity) sentiment_subjectivity.append(analysis.sentiment.subjectivity) x = x + 1 # 构建带三列的DataFrame result_df = pd.DataFrame({ 'Tweets': tweet_content, 'Sentiment_Polarity': sentiment_polarity, 'Sentiment_Subjectivity': sentiment_subjectivity })
这样就灵活多啦!
内容的提问来源于stack exchange,提问作者Mightybundy
相关产品推荐
相关产品推荐

