Cálculo del ratio de NaN en cada columna de un dataframe

La solución a este escenario pasa por el cálculo del número de elementos NaN en cada columna y su división por el número total de elementos en cada columna. Para esto vamos a utilizar el método "isnull" de pandas, método que devuelve una estructura semejante a la de entrada (en este caso un dataframe) en la que cada elemento se sustituye por los valores "True" o "False" en el caso de que sea un NaN o no, y aplicaremos la función "sum" que calcula la suma de los valores del dataframe según el eje que se indique (columnas, por defecto). Parar el cálculo de la longitud de las columnas, simplemente calculamos la longitud del dataframe: len(df). En el ejemplo que se muestra a continuación, multiplicamos la expresión por 100 para obtener un porcentaje y se ordenan las columnas de mayor a menor según el porcentaje de NaNs con el argumento "ascending = False":

na_ratio = ((df.isnull().sum() / len(df))*100).sort_values(ascending = False)

print(na_ratio)