首页 > 解决方案 > 如何使用存储在 csv 中的情绪分析数据的 Pandas 绘制多条折线图

问题描述

我有数据集在进行情感分析后,第一列(日期)和第二列(情感)

  1. 2019-03-19 , 正面 2019-03-19 , 负面 2019-03-19 , 中性
    2019-03-19, 正面 2019-04-19 , 正面 2019-04-19 , 中性
    2019-04-19 , 正面 2019 -04-19 ,积极 2019-04-19 ,积极
    2019-05-19 ,积极 2019-05-19 ,消极 2019-05-19 ,积极 2019-05-19
    ,消极

这是数据集:https ://drive.google.com/file/d/1jlmuzFi9OS3mBWjgQvQuKGdNzan708R6/view?usp=sharing

我想绘制具有正面、负面和中性的 3 个图表,如下所示

在 x 轴日期和 y 轴上没有正/负/中性有点像这样任何建议都会有用谢谢 在此处输入图像描述

标签: python-3.xpandasnumpymatplotlibsentiment-analysis

解决方案


首先,您需要将数据转换为按天和情绪类型分组的计数,

df = pd.read_csv('path-to-data/raw-Hospital.csv', header=None, 
                 names=['date', 'text', 'sentiment'], parse_dates=['date',])

by_day_sentiment = df.groupby([pd.Grouper(key='date', freq='D'), 'sentiment']) \
    .size().unstack('sentiment')

这将为您提供计数数据,

sentiment   negative  neutral  positive
date                                   
2019-03-10         2       13        42
2019-03-11        15       58        81
2019-03-12        11       61        70
2019-03-13         5      158       110
2019-03-14         2      110       182
2019-03-15        11       80       216
2019-03-16         7       58        66
2019-03-17         2       31        53
2019-03-18        11       87       137
2019-03-19         2       24        53

然后你可以通过在summary DataFrame上绘制得到如上的折线图,

by_day_sentiment.plot()

推荐阅读