Вы можете проверить, используя to_numeric
и принудительные ошибки:
pd.to_numeric(df['column'], errors='coerce').notnull().all()
Для всех столбцов вы можете перебирать столбцы или просто использовать apply
df.apply(lambda s: pd.to_numeric(s, errors='coerce').notnull().all())
Например
df = pd.DataFrame({'col' : [1,2, 10, np.nan, 'a'],
'col2': ['a', 10, 30, 40 ,50],
'col3': [1,2,3,4,5.0]})
Выходы
col False
col2 False
col3 True
dtype: bool