首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在python中绘制随时间变化的情感分析

在python中绘制随时间变化的情感分析
EN

Stack Overflow用户
提问于 2021-04-04 09:27:45
回答 1查看 255关注 0票数 0

我正在尝试绘制我的情绪分析随着时间的推移的结果。代码涉及来自论坛的评论。我的代码示例如下所示:

代码语言:javascript
运行
复制
Timestamp            Sentiment
2021-01-28 21:37:41  Positive
2021-01-28 21:32:10  Negative
2021-01-29 21:30:35  Positive
2021-01-29 21:28:57  Neutral
2021-01-29 21:26:56  Negative

我想在x轴上绘制一个只包含时间戳日期的线形图,然后在"sentiment“列中画一条单独的线表示值计数。所以总共有3行,每种情绪(积极,消极和中性)一条,y轴代表计数。我想我需要以某种方式使用groupby(),但我不知道如何使用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-04 09:53:37

我的解决方案有点令人费解,您可能应该在以后增强图形以适应您的需要(比如堆叠的条形图)。

首先,让我们将dataframe时间戳分成日期。

代码语言:javascript
运行
复制
import pandas as pd
import matplotlib.pyplot as plt
example = {'Timestamp':
          ['2021-01-28 21:37:41', '2021-01-28 21:32:10', '2021-01-29 21:30:35',
           '2021-01-29 21:28:57', '2021-01-29 21:26:56'],
           'Sentiment':
           ['Positive', 'Negative', 'Positive', 'Neutral', 'Negative']}
df = pd.DataFrame(example)
df['Timestamp'] = pd.to_datetime(df['Timestamp'])
df['Date'] = df['Timestamp'].dt.date

然后,让我们按日期分组,并计算唯一值。

代码语言:javascript
运行
复制
grouped = df.groupby(by='Date')['Sentiment'].value_counts()

输出:

代码语言:javascript
运行
复制
Date        Sentiment
2021-01-28  Negative     1
            Positive     1
2021-01-29  Negative     1
            Neutral      1
            Positive     1
Name: Sentiment, dtype: int64

这是一个多指数序列。为了获得更好的格式,我们可以对多索引进行拆分。

代码语言:javascript
运行
复制
unstacked = grouped.unstack(level=1)

然后,我们可以直接在对象上绘图,unstacked.plot.bar()。这就是结果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66937279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档