Я работаю в логистической компании, и мы осуществляем поставки B2C для нашего клиента. Итак, у нас есть прейскурант в виде таблицы и списка доставок / транзакций, веса посылки и места, куда она была доставлена.
Я видел много вопросов о SUMIFS, на которые здесь дан ответ, но очень отличается от того, который мне нужен.
1st transaction dataframe
содержит transaction id
, weight
, island
,category
transaction weight island category
1 0.3 luzon regular
2 0.5 visayas express
3 0.5 luzon express
4 0.4 visayas regular
5 1.7 visayas regular
6 1.5 luzon regular
2-й rate card dataframe
содержит category
, min_weight
, max_weight
, fee
category island min weight max weight fee
regular luzon 0 0.5 30
regular luzon 0.51 3.0 40
express luzon 0 3.0 45
regular visayas 0 0.5 50
regular visayas 0.51 3.0 60
express visayas 0 3.0 65
Поэтому я хочу рассчитать для базы сборана вес посылки и местоположение. результирующее transaction dataframe
должно быть
transaction weight island category fee
1 0.3 luzon regular 30
2 0.5 visayas express 65
3 0.5 luzon express 45
4 0.4 visayas regular 50
5 1.7 visayas regular 60
6 1.5 luzon regular 40
Итак, вот формула в EXCEL
о том, как fees
вычисляется
=SUMIFS(rate_card.fee, rate_card.min_weight <= transaction.weight, rate_card.max_weight >= transaction.weight, rate_card.island = transaction.island, rate_card.category = transaction.category)
Так что я хочу повторить эту конкретную формулу в Python
с использованием Pandas
Надеюсь, кто-нибудь может предложить решение моей проблемы с 1 месяцем.