Как построить график с несколькими линиями, используя данные анализа Pandas of Sentiment, хранящиеся в CSV - PullRequest
1 голос
/ 21 марта 2019

У меня есть набор данных После выполнения анализа настроений, который имеет 1-й столбец (дата) и 2-й столбец (настроение)

  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 нет положительного / отрицательного / нейтрального значения.предложение будет полезно спасибо enter image description here

1 Ответ

1 голос
/ 21 марта 2019

Сначала вам нужно преобразовать данные в сгруппированные подсчеты по дням и типу настроения,

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

, а затем вы можетеполучить линейный график, как указано выше, нанеся на итоговый кадр данных,

by_day_sentiment.plot()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...