Cuente el número de entradas que no sean de NaN en cada columna de Dataframe

Tengo un DataFrame realmente grande y me preguntaba si había una forma corta (una o dos líneas) de obtener un recuento de entradas que no sean de NaN en un DataFrame. No quiero hacer esto una columna a la vez, ya que tengo cerca de 1000 columnas.

df1 = pd.DataFrame([(1,2,None),(None,4,None),(5,None,7),(5,None,None)], columns=['a','b','d'], index = ['A', 'B','C','D']) abd A 1 2 NaN B NaN 4 NaN C 5 NaN 7 D 5 NaN NaN 

Salida:

 a: 3 b: 2 d: 1 

El método count() devuelve el número de valores que no son NaN en cada columna:

 >>> df1.count() a 3 b 2 d 1 dtype: int64 

De manera similar, count(axis=1) devuelve el número de valores que no son NaN en cada fila.