Итак, контекст этой проблемы: у меня есть два фрейма данных 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>
dimensions
иfee_schedule
. - person smci   schedule 15.07.2021