Python 每个变量计数Nan,并以百分比表示

Python 每个变量计数Nan,并以百分比表示,python,pandas,dataframe,Python,Pandas,Dataframe,我是python新手,但我还没有找到解决这一挑战的方法。我有每个医院不同变量的数据。现在,我确实想计算每个变量的缺失数据总量,并用百分比表示每个医院的缺失数据量。下面是dataframe的外观: 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,

我是python新手,但我还没有找到解决这一挑战的方法。我有每个医院不同变量的数据。现在,我确实想计算每个变量的缺失数据总量,并用百分比表示每个医院的缺失数据量。下面是dataframe的外观:

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
现在我们有从不同医院收集的变量,我想计算每个医院每个变量的NAN。在最终的表中,我必须将医院变为列,将变量变为行。以下是我尝试过的:

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表示特定医院每个变量的行总数

在输出上做一些修改后,这应该可以:

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

通过对输出进行一些修改,这应该可以工作:

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

我如何删除小数并只保留百分比?最后一个问题,我需要将%符号添加到百分比中,并包括计算的行总数,请协助。我如何删除小数并保留百分比?最后一个问题,我需要将%符号添加到百分比中,并包括已计算的总行数,请协助。