Самый эффективный способ поиска другого фрейма данных на основе критериев для решения проблемы упаковки по 3D-размерам и весу.

Итак, контекст этой проблемы: у меня есть два фрейма данных pandas:

  • список товаров, которые я продаю на Amazon.com, с указанием трех размеров упаковки (Ш x В x Д) и веса упаковки
  • list of the Amazon fees breakdown and weight threshold (Left hand dataframe)
    • Here is the way that Amazon charge sellers fees: if your three product box dimensions (greatest side, middle side and lowest side) plus your weight fall underneath a threshold's limits then it gets assigned that 'row'.
  • на скриншоте эти кадры данных показаны справа и слева соответственно.

Что я хочу сделать, так это создать какую-то операцию типа массового поиска с несколькими условиями (например, Excel VLOOKUP), чтобы найти строку в кадре данных разбивки сборов Amazon, которая соответствует сбору, который будет взиматься за продукт. В основном мне нужно выяснить, к какому номеру категории он относится, как вы можете видеть в ячейках, выделенных желтым цветом.

Есть ли простой способ сделать это с помощью Pandas, который не включает циклы, многочисленные операторы if и т. д.

Я думаю, что есть какой-то оператор filter или iloc/loc, который можно было бы написать в пандах, который был бы довольно простым, чтобы идентифицировать строку и добавить ее как значение в новый столбец.

Мне фактически нужно создать запрос для каждого продукта, который находит первую строку в фрейме данных Amazon (работает снизу вверх):

Где наибольшая сторона меньше, чем наибольшая сторона-макс. И ГДЕ Средний размер меньше, чем средний размер-макс. И ГДЕ Самая нижняя сторона ниже, чем наименьший размер-макс. И ГДЕ Вес меньше, чем вес.

Мне не нужен полный ответ, а скорее указание в правильном направлении наиболее эффективного способа обработки, поскольку в конечном итоге он будет использоваться для тысяч продуктов.

Первый фрейм данных

<table>
<thead>
<tr>
<th align="center">abc</th>
<th align="right">defghi</th>
</tr>
</thead>
<tbody>
<tr>
<td align="center">bar</td>
<td align="right">baz</td>
</tr>
</tbody>
</table>

person bbmh    schedule 14.07.2021    source источник
comment
Скриншот не прикрепился должным образом. Вот; i.stack.imgur.com/34t7x.png   -  person bbmh    schedule 15.07.2021
comment
Аналогично этой проблеме с упаковкой коробки: stackoverflow.com/questions/67990078/   -  person Nick ODell    schedule 15.07.2021
comment
Конечно, но нам очень нужно, чтобы вы дали нам примеры данных, разместили фреймы данных прямо здесь, а не ссылки на скриншоты. Кроме того, вам будет проще давать имена фреймам данных: dimensions и fee_schedule.   -  person smci    schedule 15.07.2021
comment
Вы отправляете только один товар? Потому что, если вы отправляете несколько предметов в одном пакете, это становится проблемой рюкзака. В частности, bin-packing. Если да, см., например, алгоритм ранца для упаковки коробок по размеру предмета? или вызов ящика для игрушек - разделение доставки/контейнера электронной коммерции< /а>   -  person smci    schedule 15.07.2021