Как использовать str.extract_all() в pypolars со столбцом REGEXPython

Программы на Python
Anonymous
Как использовать str.extract_all() в pypolars со столбцом REGEX

Сообщение Anonymous »

У меня есть два столбца со списками символов. Я пытаюсь извлечь общие символы между столбцами.
Это выглядит так:

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

shape: (20, 4)
┌────────────────────────────────┬───────────────────┬───────────────────┬─────────────────────┐
│ Original                       ┆ Compartment_1     ┆ Compartment_2     ┆ REGEX               │
│ ---                            ┆ ---               ┆ ---               ┆ ---                 │
│ str                            ┆ list[str]         ┆ list[str]         ┆ str                 │
╞════════════════════════════════╪═══════════════════╪═══════════════════╪═════════════════════╡
│ DsPhSBQQQhqmBDhPDsFwjwsLjlRjlt ┆ ["D", "s", … "F"] ┆ ["w", "j", … "b"] ┆ wjwsLjlRjlttvjvvtRb │
│ tv…                            ┆                   ┆                   ┆                     │
│ rNJMNNbrHrtjHLHjvwtg           ┆ ["r", "N", … "r"] ┆ ["t", "j", … "g"] ┆ tjHLHjvwtg          │
│ fNbNzZdrZnMnMPnQShFPDmnqFm     ┆ ["f", "N", … "M"] ┆ ["P", "n", … "m"] ┆ PnQShFPDmnqFm       │
│ QWVCFfQffgQCVZzVVpHsHJBqtpspJF ┆ ["Q", "W", … "V"] ┆ ["p", "H", … "q"] ┆ pHsHJBqtpspJFRHqq   │
│ RH…                            ┆                   ┆                   ┆                     │
│ …                              ┆ …                 ┆ …                 ┆ …                   │
│ ZnJHRncHHgnrsrZffTdMdMBfmMvfvR ┆ ["Z", "n", … "Z"] ┆ ["f", "f", … "R"] ┆ ffTdMdMBfmMvfvR     │
│ NWWPnZrVHrZPCDDQtzDCPLCq       ┆ ["N", "W", … "P"] ┆ ["C", "D", … "q"] ┆ CDDQtzDCPLCq        │
│ jpFjvBZhDFHZdwcmslcslBLLNl     ┆ ["j", "p", … "d"] ┆ ["w", "c", … "l"] ┆ wcmslcslBLLNl       │
│ dVtTVVCzzfrrMPNLLcnVcPLRns     ┆ ["d", "V", … "M"] ┆ ["P", "N", … "s"] ┆ PNLLcnVcPLRns       │
└────────────────────────────────┴─────────────────────┴─────────────────────┴─────────────────┘

Я пытался сделать:

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

day3.select(
pl.col("Compartment_1").str.extract_all(pl.col("Compartment_2"))
Но поскольку extract_all принимает аргумент регулярного выражения, это, по понятным причинам, не удалось.
Поэтому я превратил Compartment_2 в столбец с именем REGEX< /code> надеясь, что смогу просто передать и это, но я продолжаю получать Null.
Я также подумал, что, возможно, он просто злится на то, что Compartment_1 является столбцом списка, поэтому я попробовал использовать list.eval, но у меня это все равно не сработало:

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

day3_3 = day3_2.with_columns(
pl.col("Compartment_1")
.list.eval(
pl.element()
.str.extract_all(pattern = str(pl.col("REGEX")))
).alias("Match")
)
Есть советы??


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

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