请告诉我如何根据[0-9]或[A-Z]等字符范围使用Pandas过滤行。
这样的情况,其中所有列类型都是对象
A B
2.3 234
4.5 4b6
7b 275
我想检查列A中的所有值是否为浮点数意味着包含[0-9]和'。' ? 我知道pd.to_numeric,applymap,isreal,isdigit等,但在将其转换为任何数字之前,这是对象列我想知道非浮点值的问题规模。
数据集中的哪些行包含[0-9]
以外的字符答案 0 :(得分: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
<强>更新强>
从Pandas 0.20.1 the .ix indexer is deprecated, in favor of the more strict .iloc and .loc indexers开始。