Полярные поля объединяют два кадра данных, если значение столбца в другом столбцеPython

Программы на Python
Anonymous
 Полярные поля объединяют два кадра данных, если значение столбца в другом столбце

Сообщение Anonymous »

У меня есть два фрейма данных, которые я хотел бы объединить, если значение одного столбца содержится в другом столбце. Кадры данных выглядят следующим образом:

Код: Выделить всё

import polars as pl

df1 = pl.DataFrame({"col1": [1, 2, 3], "col2": ["x1, x2, x3", "x2, x3", "x3"]})
df2 = pl.DataFrame({"col3": [4, 5, 6], "col4": ["x1", "x2", "x3"]})
Я пытался сделать:

Код: Выделить всё

model_data = df1.join(df2, on="col2")
Что не дает желаемого результата. Я бы хотел увидеть что-то вроде этого:

Код: Выделить всё

shape: (6, 4)
┌──────┬────────────┬──────┬──────┐
│ col1 ┆ col2       ┆ col3 ┆ col4 │
│ ---  ┆ ---        ┆ ---  ┆ ---  │
│ i64  ┆ str        ┆ i64  ┆ str  │
╞══════╪════════════╪══════╪══════╡
│ 1    ┆ x1, x2, x3 ┆ 4    ┆ x1   │
│ 1    ┆ x1, x2, x3 ┆ 5    ┆ x2   │
│ 1    ┆ x1, x2, x3 ┆ 6    ┆ x3   │
│ 2    ┆ x2, x3     ┆ 5    ┆ x2   │
│ 2    ┆ x2, x3     ┆ 6    ┆ x3   │
│ 3    ┆ x3         ┆ 6    ┆ x3   │
└──────┴────────────┴──────┴──────┘
Вопрос в том, как выполнить соединение, когда одно значение содержится в другом значении. Я не смог найти хороших примеров в документации.

Подробнее здесь: https://stackoverflow.com/questions/743 ... her-column

Вернуться в «Python»