Быстрый и простой способ, если вам не требуется особый контроль над понижением или обработкой ошибок, - это использовать df = df.astype(float)
.
Для большего контроля вы можете использовать pd.DataFrame.select_dtypes
, чтобы выбрать столбцы по dtype. Затем используйте pd.to_numeric
для подмножества столбцов.
Настройка
df = pd.DataFrame([['656', 341.341, 4535],
['545', 4325.132, 562]],
columns=['col1', 'col2', 'col3'])
print(df.dtypes)
col1 object
col2 float64
col3 int64
dtype: object
Решение
cols = df.select_dtypes(exclude=['float']).columns
df[cols] = df[cols].apply(pd.to_numeric, downcast='float', errors='coerce')
Результат
print(df.dtypes)
col1 float32
col2 float64
col3 float32
dtype: object
print(df)
col1 col2 col3
0 656.0 341.341 4535.0
1 545.0 4325.132 562.0