Python 两个浮点数之间的类型错误

Python 两个浮点数之间的类型错误,python,excel,pandas,openpyxl,Python,Excel,Pandas,Openpyxl,所以我尝试使用Openpyxl为我的excel文件设置条件列着色。这是我的密码: for cols in ws2.iter_cols(min_col=10, max_col=10, min_row=67, max_row=83): for cell in cols: if (cell.value > 0.35): cell.fill = PatternFill(fgColor="FFC000", patternType = 'solid')

所以我尝试使用Openpyxl为我的excel文件设置条件列着色。这是我的密码:

for cols in ws2.iter_cols(min_col=10, max_col=10, min_row=67, max_row=83):
    for cell in cols:
        if (cell.value > 0.35):
            cell.fill = PatternFill(fgColor="FFC000", patternType = 'solid')
但我只是得到一个错误:

TypeError:“>”在“str”和“float”的实例之间不受支持


我检查了
单元格的类型。value
0.35
-两者都是
float
。我能做什么?

您可以使用以下选项:

cell_value = cell.value
if isinstance(cell_value, (int, float)) and (cell.value > 0.35):
    cell.fill = PatternFill(fgColor="FFC000", patternType = 'solid')

我认为问题在于,您正在迭代的列并不是由所有浮点组成的!检查每个元素的类型。

尝试以下操作:

try:
    if (float(cell.value) > 0.35):
        ...
except:
    continue

您的数据可能在
单元格中有
Null
值。value
您确定TypeError是指您在问题中出现的行吗?你说你已经检查了类型,它们都是浮动的。但是解释器也检查了它们,并说其中一个是字符串。而且,对于它抱怨的那一行,解释器总是正确的。@BoarGules我已经选择了代码的这一特定部分并执行了它,并且得到了相同的错误消息……异常告诉您问题的确切原因。我仍然说解释器在类型上是正确的,而您错了。在进行比较之前,在循环中进行类型检查并打印结果。