Ваша ошибка в следующих строках:
if price > low_val:
lxrx['Valid'] = price
else:
lxrx['Valid'] = 'Invalid'
Этот синтаксис применяет значение price
или 'Неверный' ко всему столбцу.
Вместо этого используйте .loc
для специального индексированиястрока / столбец, в который вы хотите ввести значение:
if price > low_val:
lxrx.loc[index, 'Valid'] = price
else:
lxrx.loc[index, 'Valid'] = 'Invalid'
Также, как уже упоминалось, этот цикл будет медленным решением того, что вы пытаетесь сделать, возможно, существует более простой векторизованный способ решения. проблема, объединяя младшие значения из csvm
в lxrx
в виде столбца, а затем делая что-то вроде:
lxrx["Valid"] = np.where(lxrx["Price"] > lxrx["low_value_from_csvm"], lxrx["Price"], "Invalid")