web-dev-qa-db-ja.com

Pandas文字列から数値を抽出

次のデータフレームがあるとします。

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

各セル(存在する場所)から数値を抽出します。望ましい結果は次のとおりです。

    A
0   1
1   NaN
2   10
3   100
4   0

私はそれがstr.extractですが、方法はわかりません。

15
Dance Party

正規表現のキャプチャグループを指定します。

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

あなたにあげる:

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

上記のコメントで@Steven Gの質問に答えるために、これはうまくいくはずです:

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