Número de extracto de pandas de la cadena

Dado el siguiente dataframe:

import pandas as pd import numpy as np df = pd.DataFrame({'A':['1a',np.nan,'10a','100b','0b'], }) df A 0 1a 1 NaN 2 10a 3 100b 4 0b 

Me gustaría extraer los números de cada celda (donde existan). El resultado deseado es:

  A 0 1 1 NaN 2 10 3 100 4 0 

Sé que se puede hacer con str.extract , pero no estoy seguro de cómo.

Dale un grupo de captura de expresiones regulares:

 df.A.str.extract('(\d+)') 

Te dio:

 0 1 1 NaN 2 10 3 100 4 0 Name: A, dtype: object 

Para responder a la pregunta de @Steven G en el comentario anterior, esto debería funcionar:

 df.A.str.extract('(^\d*)')