Python — Группировать по условию

#python-3.x #pandas #dataframe

#python-3.x #pandas #фрейм данных

Вопрос:

Я пытаюсь выполнить функцию gropby с условием, и я не уверен, как заставить это работать.

Вот как выглядят мои данные:

         generated_id    timestamp   direction   date    hour
0   1   1590394859141   forward 2020-05-25 04:20:59.141000-04:00    4
1   2   1599758616945   forward 2020-09-10 13:23:36.945000-04:00    13
2   3   1599759625509   backward    2020-09-10 13:40:25.509000-04:00    13
  

Мне нужно получить количество значений «прямого» направления за каждый час. Основываясь на тех же данных, приведенных выше, у меня должно быть одно значение «вперед» при значениях 4 и 1 «вперед» для 13.

Я пытаюсь использовать это:

 daily_sum = daily_df.groupby("hour")['direction'].count().reset_index()
  

Направление также может быть обратным, поэтому мне нужно сосредоточиться только на прямом направлении.

Как мне это сделать?

Ответ №1:

 daily_sum = daily_df[daily_df['direction'] == 'forward']
             .groupby("hour")['direction'].count().reset_index()