Étant donné le bloc de données suivant:
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
Je voudrais extraire les nombres de chaque cellule (où ils existent). Le résultat souhaité est:
A
0 1
1 NaN
2 10
3 100
4 0
Je sais que cela peut être fait avec str.extract
, mais je ne sais pas comment.
Donnez-lui un groupe de capture regex:
df.A.str.extract('(\d+)')
Vous donne:
0 1
1 NaN
2 10
3 100
4 0
Name: A, dtype: object
Pour répondre à la question de @Steven G dans le commentaire ci-dessus, cela devrait fonctionner:
df.A.str.extract('(^\d*)')