Подсчитайте Nan на переменную и представьте в процентах - PullRequest
1 голос
/ 10 марта 2020

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

import pandas as pd
df = pd.DataFrame([('Jorh Hospital','2018-03-15', 389.0,34, 32, 34),
                   ('Jorh Hospital','2018-04-20', np.nan,22, 5, 43),
                   ('Bugh Hospital','2019-02-16', 80.5,np.nan, 56, np.nan),
                   ('Bugh Hospital','2019-06-23', np.nan,89, 67, np.nan)],
                  columns=('Hosp_name','date', 'max_rec', 'reg_pp', 'disch_no', 'temp_rec'))
df

Теперь у нас есть переменные, собранные из разных больниц, и я хочу количество NaNs на переменную для каждой больницы . Мне нужно превратить больницы, чтобы они были столбцами, а переменные - строками в итоговой таблице. Вот то, что я пробовал:

df.isna().sum()

Я не могу перейти отсюда, и это Конечный результат, который я хочу.

dff = pd.DataFrame([('max_rec','50% (1)', '50%(1)'),
                   ('reg_pp','100%(0)', '50%(1)'),
                   ('disch_no','100%(0)', '100%(0)'),
                   ('temp_rec','100%(0)', '0')],
                  columns=('variables','Jorh Hospital (N=2)', 'Bugh Hospital (N=2)'))
dff

Пожалуйста, отметьте в финальной таблице, мне нужно представить пропущенные значения в процент , но все равно дать количество, сколько Являются ли они и столбец имеет N для представления общего числа строк на переменную в определенном c больнице

1 Ответ

3 голосов
/ 10 марта 2020

С некоторыми изменениями на выходе это должно работать:

df.iloc[:,2:].notna().groupby(df['Hosp_name']).mean().T

Вывод:

Hosp_name  Bugh Hospital  Jorh Hospital
max_rec              0.5            0.5
reg_pp               0.5            1.0
disch_no             1.0            1.0
temp_rec             0.0            1.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...