Как нарисовать временные ряды встречаемости слов в Matplotlib с python? - PullRequest
0 голосов
/ 02 января 2019

У меня есть текстовый файл с этим содержанием

   'word' , 'timestamp'
    word1 , 1546403642
    word2 , 1546392481
    word1 , 1546403642
    word3 , 1546394402
    ...

какое первое поле является словом (максимум 10 слов с многократным вхождением), а второе - отметкой времени появления этого слова.

У меня нет проблем с чтением этого файла и анализом этого CSV-файла с помощью Pandas и преобразованием метки времени linux в другой формат, но я не знаю, как поместить ее в Matplotlib, чтобы показать каждое вхождение слова во времени, что-то вроде этого: enter image description here

Я ищу подсказку, библиотеку или близкий пример того, как построить это, я не смог найти ни одного близкого примера во временных рядах, как этот.

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

Буду признателен за любую помощь.

1 Ответ

0 голосов
/ 02 января 2019

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

import pandas as pd
df['timestamp'] = pd.to_datetime(df['timestamp'])
df.set_index('timestamp',inplace=True)
df = pd.get_dummies(df)
df = df.resample('1M').sum()

get_dummies создаст столбец длякаждое слово и даст значение 0 или 1. После этого вы произведете повторную выборку по выбранному вами таймфрейму и суммируете его, чтобы в результате было получено количество вхождений.

Теперь вы можете построить его черезучебники в предоставленных вами ссылках.

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