Question: I have this Pandas dataframe (df):

```
     A    B
0    1    green
1    2    red
2    s    blue
3    3    yellow
4    b    black

```

A type is object.

I'd select the record where A value are integer or numeric to have:

```
     A    B
0    1    green
1    2    red
3    3    yellow

```

Thanks

Answer: 
You can use `convert_objects`, which when `convert_numeric=True` will forcefully set all non-numeric to `nan`. Dropping them and indexing gets your result.

This will be considerably faster that using `apply` on a larger frame as this is all implemented in cython.

```
In [30]: df[['A']].convert_objects(convert_numeric=True)
Out[30]: 
    A
0   1
1   2
2 NaN
3   3
4 NaN

In [31]: df[['A']].convert_objects(convert_numeric=True).dropna()
Out[31]: 
   A
0  1
1  2
3  3

In [32]: df[['A']].convert_objects(convert_numeric=True).dropna().index
Out[32]: Int64Index([0, 1, 3], dtype='int64')

In [33]: df.iloc[df[['A']].convert_objects(convert_numeric=True).dropna().index]
Out[33]: 
   A       B
0  1   green
1  2     red
3  3  yellow

```
Note that `convert_objects` is deprecated

```
>>> df[['A']].convert_objects(convert_numeric=True)
__main__:1: FutureWarning: convert_objects is deprecated.  Use the data-type specific converters pd.to_datetime, pd.to_timedelta and pd.to_numeric.

```

From 0.17.0: use `pd.to_numeric`, set `errors='coerce'` so that incorrect parsing returns NaN. Use `notnull` to return a boolean mask to use on the original dataframe:

```
>>> df[pd.to_numeric(df.A, errors='coerce').notnull()]
   A       B
0  1   green
1  2     red
3  3  yellow

```