Contar o número de entradas não NaN em todas as colunas do Dataframe

Eu tenho um DataFrame realmente grande e fiquei pensando se havia uma maneira curta (um ou dois liner) de obter uma contagem de entradas não-NaN em um DataFrame. Não quero fazer essa coluna de cada vez, pois tenho cerca de 1000 colunas.

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

    a   b   d
A   1   2 NaN
B NaN   4 NaN
C   5 NaN   7
D   5 NaN NaN

Resultado:

a: 3
b: 2
d: 1

questionAnswers(1)

yourAnswerToTheQuestion