2016-10-27 4 views
0

は、私は、各要素の数値部分を抽出したいpd.Seriessパンダはstrの整数として抽出

s = pd.Series(['A1', 'B2', '3C']) 

を検討してください。
私は各要素のtypeを取得した場合

s.str.extract('(\d)', expand=False).apply(type) 

0 <class 'str'> 
1 <class 'str'> 
2 <class 'str'> 
dtype: object 

私は次のようにextractを使用することができます

s.str.extract('(\d)', expand=False) 

0 1 
1 2 
2 3 
dtype: object 

お知らせdtype: object
を知っているが、質問

私はどのようにして抽出します整数に直接?

0 1 
1 2 
2 3 
dtype: int64 
+2

私はあなたがこれをすでに知っていると確信しているが、あなたは 'astype(int)を使用して再度キャストする必要があると思います'や 'to_numeric'を使用してI 'str.extract'の仕事は、抽出されたグループのdtypeを推測することではないと思います – EdChum

答えて

2

だと思います。

戻り値:

はドキュメントstr.extractを見る

DATAFRAME各対象文字列に対して1つの行、及び 各グループに対して1つの列を持ちます。正規表現patのキャプチャグループ名は、カラム名として を使用します。それ以外の場合、キャプチャグループ番号は になります。各結果列のdtypeは、 の一致が見つからない場合でも常にオブジェクトです。 expand = Trueでpatにキャプチャグループが1つしかない場合は、Series(SubjectがSeriesの場合)またはIndex(サブジェクト がIndexの場合)を返します。

ので、出力にastype(int)場合や、NaNを必要とする - to_numericpd.to_numeric(s.str.extract('(\d)', expand=False))

関連する問題