Почему добавление оператора if дает мне TypeError: «float» не повторяется? - PullRequest
1 голос
/ 06 января 2020

Я создаю программу, которая ищет ячейку в крайнем правом столбце, содержащем ненулевое число с плавающей точкой.

Вот раздел, который вызывает вспомогательную функцию и применяет ее к каждой строке:

for index, row in supplier.iterrows():
        if row[2] not in storage["Product"] and not pd.isnull(row[2]):
            if find_most_recent(j, supplier) != 0:
                storage["Product"].append(row[2])
                storage["Most Recent Price"].append(find_most_recent(j,
                                                                supplier))
        j += 1

Вот вспомогательная функция, которая делает то, что я объяснил выше:

def find_most_recent(row_num: int, df) -> float:
k = -1
checker = False
while not checker and k > -len(df.columns):
    if "final cost" in df.columns[k]:
        if not pd.isnull(df.iloc[row_num, k]): #and df.iloc[row_num, k] > 0:
            checker = True
            return df.loc[row_num, df.columns[k]]
    k -= 1

По какой-то причине добавление закомментированной части df.iloc[row_num, k] > 0 дает мне

TypeError: «float» не повторяется.

Работает нормально без ошибок (только не так, как я хочу) без этой части.

Я знаю, что это очень часто задаваемый вопрос, но я пробовал и пытался и не могу понять, что не так, поскольку я явно не пытаюсь перебрать поплавок?

Заранее спасибо, ребята.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...