Localice el primer y último valor no NaN en un DataFrame de Pandas

Tengo un Pandas DataFrame indexado por fecha. Hay una serie de columnas, pero muchas columnas solo se rellenan para parte de la serie temporal. Me gustaría encontrar dónde se ubican el primer y último valor no NaN para poder extraer las fechas y ver cuánto tiempo dura la serie de tiempo para una columna en particular.

¿Alguien podría indicarme la dirección correcta de cómo podría hacer algo como esto? Gracias por adelantado.

La solución de @ behzad.nouri funcionó a la perfección para devolver el primer y último valor que no sea NaN values usando Series.first_valid_index y Series.last_valid_index , respectivamente.