Ваш вопрос сводится к:
Как я могу преобразовать столбцы, которые означали , в числовые, но в настоящее время имеют object
dtype.
Как только эта проблема будет решена, pd.DataFrame.select_dtypes
будет работать как нужно.Подразумевается, что вы заранее не знаете, какие серии должны быть числовыми.Но вы можете попробовать и преобразовать столбцы в числовые значения, которые в настоящее время имеют тип object
dtype.Если вы найдете ненулевые значения, вы можете применить преобразование.
for col in df.select_dtypes(include=['object']):
s = pd.to_numeric(df[col], errors='coerce')
if s.notnull().any():
df[col] = s
print(df.dtypes)
points object
col1 float64
col2 object
col3 object
col4 float64
col5 object
col6 float64
col7 float64
dtype: object
Логика будет работать для представленных вами данных.Это не сработает, например, когда у вас есть ряд в основном строк и несколько чисел.В этой ситуации вам потребуется определить более точную логику, чтобы определить, какие серии следует считать числовыми.