Как визуализировать совокупные значения оценки настроений VADER с течением времени в Python?

У меня есть фреймворк Pandas, содержащий твиты за период с 24 июля 2019 года по 19 октября 2019 года. Я применил метод анализа настроений VADER к каждому твиту и добавил оценки настроений в новые столбцы.

Теперь я надеялся визуализировать это на каком-то линейном графике, чтобы проанализировать, как менялись усредненные дневные оценки настроений за этот трехмесячный период. Поэтому мне нужно, чтобы даты были на оси x, а усредненные отрицательные, положительные и сложные оценки (три разные линии) на оси y.

У меня есть идея, что мне нужно как-то сгруппировать или пересчитать данные, чтобы показать агрегированное значение настроения за день, но, поскольку мои навыки Python все еще ограничены, мне не удалось найти решение, которое еще работает.

Если у кого-то есть идея, как я могу продолжить, я был бы очень признателен! Я прикрепил изображение своего фрейма даты, а также пример типа сюжета, который я имел в виду :)

Ура, Николай

введите описание изображения здесь

введите описание изображения здесь


person Nicolai MC    schedule 26.05.2020    source источник


Ответы (1)


Вам следует взглянуть на метод groupby (): https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.groupby.html

Просто создайте столбец дня, который содержит отметку времени / datetime_object / dict / tuple / str ..., которая представляет день твита, а не его точное время. Затем используйте метод groupby () для этого столбца. Если вы не знаете, как создать этот столбец, простой способ сделать это - использовать https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.apply..html

Имейте в виду, что метод groupby возвращает не DataFrame, а groupby_generic.DataFrameGroupBy, поэтому вам нужно будет выбрать способ агрегации данных в ваших группах (вам, вероятно, следует использовать groupby (). Mean () в вашем случае, см. документацию по методу grouby для получения дополнительной информации)

person TBER    schedule 26.05.2020