Отказ от ответственности: я - врач без формального обучения, которому поручено составить отчет, в котором рассматривается, сколько пациентов достигает целей терапии, и мне нужно разбить его по учреждениям и клиникам.Я могу получить знаменатель (общее количество случаев в зависимости от учреждения и клиники) и числитель (общее количество случаев, соответствующих целям терапии), но я не могу понять, как отобразить оба из них в группе вместе со столбцом, показывающим процент целей встречи (num / denom).
Пример кадра данных:
import pandas as pd
df = pd.DataFrame([[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],
['anxiety','PTSD','PTSD','anxiety','PTSD','depression','anxiety','anxiety','PTSD','anxiety','anxiety','anxiety','depression','depression','PTSD'],
[False,False,False,True,True,False,True,False,False,False,False,False,False,False,False],
['120C','120C','120C','120C','120C','120C','120C','120C','120C','120C','375C','375C','375C','375C','375C'],
['BH-PSYL','BH-PSYL','BH-YUKON','BH-DENALI','BH-YUKON','BH-DENALI','BH-CFS','BH-CFS','BH-CFS','BH-CFS','BH-HTHPSY','BH-HTHPSY','BH-BSS','BH-HTHPSY','BH-BSS']]).T
df.columns = ['Patient ID','DX Category','Met Goal','Facility','Clinic']
Это дает знаменатель:
df.groupby(['Facility', 'Clinic']).count()[['Met Goal']]
Это дает числитель:
df[df['Met Goal'] == True].groupby(['Facility', 'Clinic']).count()[['Met Goal']]
Окончательный результат должен показывать (вымышленные номера):
Facility | Clinic | Met Goal | Cases | Percent
120C
| BH-PSYL | 1 | 4 | 25%
| BH-YUKON | 2 | 6 | 33%
375C
| BH-CFS | 0 | 1 | 0%
Любая помощь приветствуется!