Мне нужно было бы нанести на график значения времени, чтобы увидеть, как меняется частота. В частности сообщения генерируются от разных пользователей во времени. У меня есть набор данных, подобный следующему:
GENDER POST DATE COUNTER
0 men (post 103) 36 43
1 men (post 109) 38 2
2 men (post 116) 41 12
3 men (post 119) 42 32
4 men (post 124) 44 2
.. ... ... ... ...
82 women (post 83) 29 34
83 women (post 86) 30 2
84 women (post 86) 65 9
85 women (post 91) 32 5
86 women (post 99) 35 5
, где DATE является числовым (последовательные числа, а не формат даты). Сначала я подумал о выборе интересующих меня столбцов с помощью seaborn:
from matplotlib import pyplot
import seaborn
fg = seaborn.FacetGrid(data=df_, hue='GENDER', aspect=1.61)
fg.map(pyplot.scatter, 'DATE', 'COUNTER').add_legend()
но для того, чтобы получить что-то похожее на график, показанный на рисунке ниже:
https://imgur.com/bAKogi9
Я думаю, мне следует рассмотреть временной ряд для того, чтобы отслеживать сообщения во времени. На оси X каждого графика будет указана дата (DATE
), а на оси Y - частота сообщения (COUNTER
).
Файл CSV, который я рассматриваю для этого анализа, содержит следующие столбцы:
file = '...'
with open(file, newline='') as csvfile:
df = csv.reader(csvfile, delimiter=';', quotechar='|')
for row in df:
print(' '.join(row))
df = pd.read_csv(file, sep=';') # or your sep in file
df.columns = [' ', 'GENDER', 'POST', 'DATE', 'COUNTER',' ']
Большое спасибо за ваше время и за помощь.
Обновление:
GENDER POST DATE COUNTER
0 (man 8) (post 4) 0 0 NaN
1 (woman 13) (post 1) 2 0 NaN
2 (man 14) (post 7) 2 2 NaN
3 (man 8) (post 4) 4 1 NaN
4 (woman 19) (post 12) 4 1 NaN