Как «вменять» недостающий элемент в 2-х уровневую группу в pandas - PullRequest
0 голосов
/ 24 января 2020

У меня есть вопрос относительно того, как вписать индекс второго уровня после 2-уровневой группировки в pandas.

У меня есть данные о пациентах. Я пытаюсь отследить, когда были сгенерированы эти отчеты, чтобы я мог отобразить их в виде диаграммы. Три вещи, которые имеют значение для того, что я пытаюсь сделать, - это когда был создан отчет, технология, которая генерировала отчет, и количество каждой технологии в месяц. У меня есть эта строка кода до сих пор

frame.groupby([pd.Grouper(key="reportDate", freq='M'), pd.Grouper(key="sourceFilePathTechnology")], observed= False).count()

, которая генерирует следующую таблицу.

Dataframe

Я близок к тому, что пытаюсь получить, но что-то упускаю и не могу найти то, что я ищите в документации или в другом посте ТАК. Последний отсутствующий шаг - я хочу, чтобы каждая технология была представлена ​​в индексе sourceFilePathTechnology в месяц. поэтому 2016-03-31 имеет только FSG, когда мне нужно, чтобы он также имел NTP, MOL, даже если счетчик равен 0. И мне это нужно на каждый месяц в индексе reportDate Кто-нибудь знает, как я могу решить эту проблему?

Спасибо всем, кто может внести свой вклад!

1 Ответ

0 голосов
/ 24 января 2020

нашел мой ответ. Мне нужно было гуглить pandas group by and count 0 и наткнулся на этот пост: Pandas groupby для нулевых значений

ответ был

frame.groupby([pd.Grouper(key="reportDate", freq='M'), pd.Grouper(key="sourceFilePathTechnology")], observed= False).count().unstack(fill_value=0).stack()
...