Python 将数据分组并可视化缺少的值

Python 将数据分组并可视化缺少的值,python,pandas,matplotlib,Python,Pandas,Matplotlib,我有一个大的医学数据集,我想按医院分组,然后绘制每家医院缺失值的图表。以下是数据集的外观: import pandas as pd import matplotlib.pyplot as plt import numpy as np # intialise data of lists. data = {'hospital':['Nick hospital', 'Nick hospital','Nick hospital', 'Krish hospital', 'Krish hospital'

我有一个大的医学数据集,我想按医院分组,然后绘制每家医院缺失值的图表。以下是数据集的外观:

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

# intialise data of lists. 
data = {'hospital':['Nick hospital', 'Nick hospital','Nick hospital', 'Krish hospital', 'Krish hospital','Krish hospital'], 
        'NAR_used':[2, 1,np.nan, 2, np.nan,3], 'ipno':[45,np.nan,np.nan,np.nan,65,67]
       } 

# Create DataFrame 
df = pd.DataFrame(data)
df
有了这个样本数据集,我们只有2家医院的医院变量,因此我想可视化每个医院缺少的值。 这是我试过的

grouped = df.groupby(['hospital'])
for (i in grouped):
    null_counts = df.isnull().sum()/len(df)
    plt.figure(figsize=(16,8))
    plt.xticks(np.arange(len(null_counts)) + 0.5, null_counts.index, 
    rotation = 'vertical')
    plt.ylabel('Fraction of rows with missing data')
    plt.bar(np.arange(len(null_counts)), null_counts)

我的解决方案不是为每家医院生成图表。请帮忙。预期输出是可视化每个医院缺失值的条形图。

让我们试试:

df.set_index('hospital').isna().sum(level=0).plot.bar()
输出:


由于我拥有的数据集有许多变量,您能否将图形分开,以便每个医院都有自己的图形,例如,12列的
layout=(4,3)
将为您提供不同的子图。这很有帮助,但不是我期望的准确输出。你能在你写的代码中添加这些子代码吗