Код: Выделить всё
journeys = pl.DataFrame({'id':[1,2,3,4,5,6],'order_id':[11,12,13,14,14,15],'order_type':['restaurant','restaurant','restaurant','restaurant','grocery','grocery']})
restaurant_orders = pl.DataFrame({'id':[11,12,13,14],'item_count':[4,7,3,5]})
grocery_orders = pl.DataFrame({'id':[14,15],'item_count':[23,21]})
Код: Выделить всё
journeys:
┌─────┬──────────┬────────────┐
│ id ┆ order_id ┆ order_type │
│ --- ┆ --- ┆ --- │
│ i64 ┆ i64 ┆ str │
╞═════╪══════════╪════════════╡
│ 1 ┆ 11 ┆ restaurant │
│ 2 ┆ 12 ┆ restaurant │
│ 3 ┆ 13 ┆ restaurant │
│ 4 ┆ 14 ┆ restaurant │
│ 5 ┆ 14 ┆ grocery │
│ 6 ┆ 15 ┆ grocery │
└─────┴──────────┴────────────┘
Код: Выделить всё
restaurant_orders:
┌─────┬────────────┐
│ id ┆ item_count │
│ --- ┆ --- │
│ i64 ┆ i64 │
╞═════╪════════════╡
│ 11 ┆ 4 │
│ 12 ┆ 7 │
│ 13 ┆ 3 │
│ 14 ┆ 5 │
└─────┴────────────┘
Код: Выделить всё
grocery_orders:
┌─────┬────────────┐
│ id ┆ item_count │
│ --- ┆ --- │
│ i64 ┆ i64 │
╞═════╪════════════╡
│ 14 ┆ 23 │
│ 15 ┆ 21 │
└─────┴────────────┘
Наивный способ — отфильтровать фрейм данных «Путешествия» на основе столбца order_type, выполнить объединение каждого отфильтрованного фрейма данных и, наконец, соединить их обратно вместе.
Есть ли идиоматический способ Polars для выполнения условного (полиморфного?) соединения с кадром данных путешествия на основе значения order_type.
Подробнее здесь: https://stackoverflow.com/questions/773 ... -condition