Как исправить все ключи должны быть одинаковые ошибки формы при группировании по пустому Dataframe - PullRequest
0 голосов
/ 18 октября 2019

Я работаю над упражнением, в котором подсчитываю процентное содержание случаев определенных событий в различных местах.

кадр данных выглядит примерно так:

event_id non_kinetic_events kinetic_events event_name

2000 rows × 4 columns

Конечная цель -в итоге получим фрейм данных, показывающий процент определенных событий в данном месте, например:

               event_id      Seattle


 event_name      

   snowfal       20            10%           

 light rain      30            40%     

 heavy rain      15            20%

Ниже приведен пример операции группового режима, которая дает мне приведенный выше результат:

df_event = df[df.non_kinetic_events.apply(lambda x: x != '')]

df_city = df_event[df_event.city.apply(lambda x: x== 'Seattle')]

df_event_grouped = df_event.groupby(['event_name']).agg({'event_id':len})

grouped_events = df_city.groupby(['event_name']).agg({'event_id':len})

grouped_events['Seattle'] = (100 * grouped_events['event_id'] / df_event_grouped['event_id'])

grouped_events['Seattle'] = grouped_events['Seattle'].apply(lambda x: "{:.0f}%".format(x))

Все это работает нормально, за исключением случаев, когда в результате моей фильтрации df_city dataframe становится пустым , я получаю ValueError "все ключи должны быть одинаковой формы"

В идеале,если файл данных df_city пуст, я хочу увидеть этот результат:

            event_id  Phoenix

event_name             

 snowfal       0        0%

light rain     0        0%

heavy rain     0        0%

Каков наилучший способ решить эту проблему?

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