我正在遍历熊猫数据框,并尝试将结果附加到条件语句上。但是,我的代码似乎造成了一个问题,使我无法追加我想要的内容,尽管它可以正常打印,但最终会显示错误。这是我的代码如下:
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为什么标记那条线。浮子在哪里?一切都在打印,但底部有错误。它停止附加。
答案 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"
一起返回:
我是一个字符串