'/'被理解为浮点数?

时间:2018-10-01 10:02:57

标签: python python-3.x

我正在遍历熊猫数据框,并尝试将结果附加到条件语句上。但是,我的代码似乎造成了一个问题,使我无法追加我想要的内容,尽管它可以正常打印,但最终会显示错误。这是我的代码如下:

counta=[]
for line in ipcm_perf['Alarms']:
    if '/' in line:
       print (line)

我得到的错误如下:

     2 for line in ipcm_perf['Alarms']:
     ----> 3     if ('/') in line:
           4         print (line)
           5 

         TypeError: argument of type 'float' is not iterable

我真的不知道Python为什么标记那条线。浮子在哪里?一切都在打印,但底部有错误。它停止附加。

1 个答案:

答案 0 :(得分:0)

您的问题是,您正在尝试检查浮动数字(/)中是否有字符串(line),而Python不喜欢这样。
这是因为编写"/" in some_string时,Python会遍历some_string的每个字符,但他可以遍历一个浮点数。
您只需运行以下命令即可再次检查:

if '/' in 3.14:
    print("something")

输出:

  

TypeError:“ float”类型的参数不可迭代

我想您正在搜索/,因为您已经在列中某处看到了它。如果是这样,可能是string,如果是这样,清理数据的快捷方法可能是:

if type(line) == str:
    if "/" in line:
        print(line)
else:
    print("I am not a string")

并与line = 3.14一起返回:

  

我不是字符串

并与line = "4/2"一起返回:

  

我是一个字符串