2016-09-27 9 views
1

[0-9]や[A-Z]のような文字範囲でPandasベースを使用して行をフィルタリングする方法を教えてください。列Aのすべての値は意味が含まれているフロート[0-9]とされている場合は「」私がチェックしたいすべての列の型がオブジェクトパンダ - 正規表現に基づいて行をフィルタリングする方法

A   B 
2.3  234 
4.5  4b6 
7b  275 

ある。このような

場合? 私はpd.to_numeric、applymap、isreal、isdigitなどを認識していますが、浮動小数点値の問題のスケールを知りたい数値に変換する前に、これはオブジェクトの列です。

と、データセット内の行以外の文字が含まれている[0-9]

答えて

1

は、これを試してください:

In [8]: df 
Out[8]: 
    A B 
0 2.3 234 
1 4.5 4b6 
2 7b 275 
3 11 11 

In [9]: df.A.str.match(r'^\d*\.*\d*$') 
Out[9]: 
0  True 
1  True 
2 False 
3  True 
Name: A, dtype: bool 

In [10]: df.loc[df.A.str.match(r'^\d*\.*\d*$')] 
Out[10]: 
    A B 
0 2.3 234 
1 4.5 4b6 
3 11 11 

UPDATE:

がパンダ0.20.1 the .ix indexer is deprecated, in favor of the more strict .iloc and .loc indexersから出発します。

+0

ありがとうございました - 私が望んだとおりに働いています –

+0

@ErrorReplicator、よろしいですか? :)あなたの質問に答えたと思うなら、[accepting](http://meta.stackexchange.com/a/5235)と答えてください。 – MaxU

関連する問題