web-dev-qa-db-fra.com

Extraire le nombre de pandas de la chaîne

É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.

6
Dance Party

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
16
Jon Clements

Pour répondre à la question de @Steven G dans le commentaire ci-dessus, cela devrait fonctionner:

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