我有一个类似于pandas数据帧的对象,在调用它的data_type()
方法时,它返回每列的数据类型字典。
dtypes = df.data_type()
dtypes
# {'Unnamed: 0': <class 'int'>, '0': <class 'str'>, '1': <class 'float'>, '2': <class 'float'>, '3': <class 'float'>, '4': <class 'float'>, '5': <class 'float'>, '6': <class 'float'>, '7': <class 'float'>, '8': <class 'float'>, '9': <class 'float'>, '10': <class 'float'>, '11': <class 'float'>, '12': <class 'float'>, '13': <class 'str'>, '14': <class 'str'>}
如您所见,此处返回的字典值类型为type
。
现在,我需要执行一些特定于字符串/字符列的操作,因此希望选择具有<class 'str'>
的列。问题是我在这里不能使用isinstance
,因为<class 'str'>
的类型为<class 'type'>
而且我的所有比较都返回False
,因此没有列得到选择。
所以这里的问题是如何使用type
函数的输出来与python数据类型(int,float,str)进行比较?
答案 0 :(得分:0)
您可以专门针对字符串/字符列
执行以下操作for col in df.columns:
if(df[col].dtype == np.float64 or df[col].dtype == np.int64):
##do something
else:
#do for string