У меня есть набор табличных данных, которые я импортировал в кадр данных pandas.В каждой строке записывается конкретное событие, которое произошло с конкретным человеком, а также дата события и куча прямо сейчас посторонней информации.Может быть несколько событий на человека в день.Идентификатор «Персона» является уникальным.
events = {'Date': ['1-12-2018', '1-18-2018', '2-12-2019', etc],
'Person': ['Bob','Bob','Joe','Frank']}
Я хочу построить линейный график, показывающий количество ежемесячных событий, с каждым человеком в отдельной строке.Я также хочу рассчитать среднее число событий на человека.
Для начала я подумал, что может быть немного проще, если я сделаю отдельный столбец месяц-год:
events['MY']=events.Date.dt.strftime('%Y-%m')
Я легко могу сделать то, что я хочу сделать для одного человека:
bob = events.loc[events['Person']=='Bob']
%Plots bob's monthly event count:
bob.MY.groupby(bob.MY).count().plot()
%Calculates bob's average monthly event count
bob.MY.groupby(bob.MY).count().mean()
Однако я не могу понять, как сделать это для нескольких людей, и я чувствую, что на самом деле не приближаюсь к этомулучший способ, либо.Если я пытаюсь перебрать людей и нанести на график каждую из них в виде отдельной линии, это приводит к перекручиванию оси x на графике.Я могу зацикливаться на людях и получать среднее количество ежемесячных событий, но, похоже, должен быть простой способ сделать то, чего мне не хватает.