Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Selecting Pandas Columns by dtype

I was wondering if there is an elegant and shorthand way in Pandas DataFrames to select columns by data type (dtype). i.e. Select only int64 columns from a DataFrame.

To elaborate, something along the lines of

df.select_columns(dtype=float64) 

Thanks in advance for the help

like image 587
caner Avatar asked Jan 21 '14 23:01

caner


People also ask

How do I see specific columns in pandas?

Selecting columns based on their name This is the most basic way to select a single column from a dataframe, just put the string name of the column in brackets. Returns a pandas series. Passing a list in the brackets lets you select multiple columns at the same time.


2 Answers

Since 0.14.1 there's a select_dtypes method so you can do this more elegantly/generally.

In [11]: df = pd.DataFrame([[1, 2.2, 'three']], columns=['A', 'B', 'C'])  In [12]: df.select_dtypes(include=['int']) Out[12]:    A 0  1 

To select all numeric types use the numpy dtype numpy.number

In [13]: df.select_dtypes(include=[np.number]) Out[13]:    A    B 0  1  2.2  In [14]: df.select_dtypes(exclude=[object]) Out[14]:    A    B 0  1  2.2 
like image 78
Andy Hayden Avatar answered Oct 08 '22 01:10

Andy Hayden


df.loc[:, df.dtypes == np.float64] 
like image 24
Dan Allan Avatar answered Oct 07 '22 23:10

Dan Allan