Я хочу избежать применения apply () и вместо этого векторизовать мою обработку данных.
У меня есть функция, которая формирует данные на основе нескольких условий "if" и "else".Как передать данные в эту функцию?
def my_function(id):
if 0 <= id <= 30000:
cal_score = 5
else:
cal_score = 0
return cal_score
Apply () работает, он проходит по каждой строке
Но apply () работает медленно для огромного набора данных.(Мой сценарий)
df['final_score'] = df.apply(lambda x : my_function(x['id']), axis = 1)
Передача массива numpy не работает !!
df['final_score'] = my_function(df['id'].values)
ОШИБКА: "значение истинности массива с более чем одним элементом неоднозначно. Используйте a.any () или a.call ()
Не нравится, когда весь массив проходит как цикл "if" в моих ошибках функций из-за более чем 1 элемента
Я хочу обновитьмой столбец final_score, основанный на значениях идентификаторов, но с передачей всего массива.
как мне спроектировать или решить это?