Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Converting all columns of dtype 'object' to 'float' in Python/Pandas

I wanted to convert all the 'object' type columns to another data type (float) in a dataframe without hard coding the column names. I was able to piece together some code from other answers that seems to work, but I feel like there's got to be a simpler way of doing this.

# Creating isolating columns of object data type
object_cols = df.loc[:, df.dtypes == 'O']

# Extracting column names with list comprehension
object_type_columns = [col for col in object_cols.columns]

# Converting column types of .astype in a for loop
for col in object_type_columns:
  df[col] = df[col].astype(float)

Let me know if there's any information I'm leaving out (I'm new at this). Thanks!

like image 412
semblable Avatar asked Oct 25 '25 00:10

semblable


2 Answers

You can use select_dtypes to find the column names:

s = df.select_dtypes(include='object').columns
df[s] = df[s].astype("float")
like image 106
Henry Yik Avatar answered Oct 27 '25 16:10

Henry Yik


Try this, to convert the whole data frame all at once:

df = df.astype('float')
like image 30
Leslie T Chihwai Avatar answered Oct 27 '25 15:10

Leslie T Chihwai