检查对象数据类型列值是浮点数还是字符串的函数

我正在尝试在 excel 中编写一个等于 isnumber[column] 函数的函数


数据集:


feature1 feature2 feature3

  123       1.07     1

  231       2.08     3

  122        ab      4

  111       3.04     6

  555        cde     8


feature1: integer dtype

feature2: object dtype

feature3: integer dtype

我试过这段代码


for item in df.feature2.iteritems():

    if isinstance(item, float):

       print('yes')

    else:

       print('no')

我得到的结果是


 no

 no

 no

 no

 no

但我想要结果


yes

yes

no

yes

no

当我尝试检查单个 feature2 值的类型时,这就是所见


type(df.feature2[0]) = str

type(df.feature2[1]) = str

type(df.feature2[2]) = str

type(df.feature2[3]) = str

type(df.feature2[4]) = str


But clearly 0,1,3 should be shown as float, but they show up as str

我做错了什么?


MMTTMM
浏览 161回答 3
3回答

繁星淼淼

Iteritems 返回一个元组,((123, '1.07'), 1.07)由于您想遍历每个值,请尝试以下代码。您只需要移除.iteritems()它,它就会像魅力一样发挥作用。df['feature2']=[1.07,2.08,'ab',3.04,'cde']for item in df.feature2:    if isinstance(item,float):       print('yes')    else:       print('no')这是您的输出:yesyesnoyesno

慕尼黑8549860

试试这个:for i in range(len(df["feature2"])):    test = df.loc[i,"feature2"]    if isinstance(test, float):        print('yes')    else:        print('no')
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python