如何在数据框中查找具有整数值的列,并在python中为所有整数或浮点值加上引号?

我想首先检查哪些列具有数字值(int或float),然后在值周围添加双引号(“”)。有什么方法可以动态检查此类列,因为最初不知道列名或位置。

import numpy as np
import pandas as pd
import io

data='''
a,s,d,f
5.33,on,off,500
6.10,on,off,800
'''
df= pd.read_csv(io.StringIO(data))

预期产量: df

       a   s    d    f
0  "5.33"  on  off  "500"
1  "6.10"  on  off  "800"

更新:

我使用df.dtypes获得了列名,并检查了非对象数据类型。现在,我只想为这些列动态添加引号。

non_obj_datatypes = df.columns[df.dtypes != 'object']

non_obj_datatypes
Out[4]: Index(['a', 'f'], dtype='object')