Как использовать groupby и рассчитать количество для каждой группы - PullRequest
0 голосов
/ 18 апреля 2019

У меня есть фрейм данных, который выглядит следующим образом

DateTime      RunStatus hour
2018-05-08 01:45:00 0.0 1
2018-05-08 02:00:00 0.0 2
2018-05-08 02:15:00 0.0 2
2018-05-08 02:30:00 0.0 2
2018-05-08 02:45:00 0.0 2
2018-05-08 03:00:00 1.0 3
2018-05-08 03:15:00 1.0 3
2018-05-08 03:30:00 0.0 3
2018-05-08 07:45:00 0.0 7
2018-05-08 08:00:00 0.0 8
2018-05-08 08:15:00 0.0 8
2018-05-08 08:30:00 0.0 8
2018-05-08 08:45:00 0.0 8
2018-05-08 09:00:00 1.0 9
2018-05-08 09:15:00 1.0 9
2018-05-08 09:30:00 1.0 9
2018-05-08 09:45:00 0.0 9
2018-05-08 10:00:00 0.0 10
2018-05-08 10:15:00 0.0 10
2018-05-08 10:30:00 0.0 10
2018-05-08 10:45:00 0.0 10
2018-05-08 11:00:00 0.0 11
2018-05-08 11:15:00 0.0 11
2018-05-08 11:30:00 0.0 11
2018-05-08 11:45:00 0.0 11
2018-05-08 12:00:00 0.0 12
2018-05-08 12:15:00 1.0 12
2018-05-08 12:30:00 1.0 12
2018-05-08 12:45:00 1.0 12

Я бы хотел сгруппировать, используя переменную часов, и для каждого часа хочу, чтобы число раз runstatus равнялось 0, а runstatus равнялось 1

Ответы [ 2 ]

2 голосов
/ 18 апреля 2019

Использование crosstab после изменения формата вашего Datetime

pd.crosstab(df.DateTime.dt.strftime('%Y-%m-%d %H'),df.RunStatus)
0 голосов
/ 18 апреля 2019

Предполагается, что ваш фрейм данных равен df:

runStatusCount = df.drop('date',axis=1)[df['RunStatus'].isin([0,1])].groupby('hour').count()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...