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

Viewed 5473

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!

3 Answers

You can use select_dtypes to find the column names:

s = df.select_dtypes(include='object').columns
df[s] = df[s].astype("float")

try this...

df.column_name.str.replace(r'\s+','').astype(float)

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

df = df.astype('float')
Related