Возможно ли векторизовать функцию в pandas для моей задачи

У меня имеется таблица fiz_ostatki, где описывается город, номер продукта и остатки на складе.

area number_product balances
Волгоград 196 20
Волгоград 197 27
Пермь 17 15

и таких строк 1500 Также таблица с заказами (orders), где также есть город, номер продукты и сколько требуется

area number_product required
Волгоград 196 15
Волгоград 196 2
Волгоград 197 43
Пермь 17 8

таких строк 10000

В своем коде я использую метод apply, где я уже изменяю таблицу fiz_ostatki по условию:

def raschet_fiz_ostatki(number_product, area, required):
    #проверяю требуется ли 
    if required!=0:
        #если нет в списке fiz_ostatki, то возвращаем None
        if fiz_ostatki[(fiz_ostatki['number_product']==number_product) & (fiz_ostatki['area']==area)].empty:
            return 
        #если требуется больше чем есть в остатках, то баланс обнуляем
        if required > fiz_ostatki.loc[(fiz_ostatki['number_product'] == number_product) & (fiz_ostatki['area']==area), 'balances'].iloc[0]:
            fiz_ostatki.loc[(fiz_ostatki['number_product'] == number_product) & (fiz_ostatki['area']==area), 'balances'] = 0
            return 
        #иначе, отнимаем сколько требуется
        else: 
            fiz_ostatki.loc[(fiz_ostatki['number_product']==number_product) & (fiz_ostatki['area']==area), 'balances'] -= required
            return 
orders.apply(lambda x: raschet_fiz_ostatki(x['number_product'], x['area'], x['required']), axis=1)

Ответы (0 шт):