Есть ли в Polars лучший способ возвращать элементы внутри строки, только если они соответствуют элементам в списке, испоPython

Программы на Python
Ответить
Anonymous
 Есть ли в Polars лучший способ возвращать элементы внутри строки, только если они соответствуют элементам в списке, испо

Сообщение Anonymous »

Есть ли лучший способ вернуть каждый pl.element() в полярном списке только в том случае, если он соответствует элементу, содержащемуся в другом списке?
Хотя это работает, я считаю, что, вероятно, есть более краткий/лучший способ:
import polars as pl

terms = ['a', 'z']

(pl.LazyFrame({'a':['x y z']})
.select(pl.col('a')
.str.split(' ')
.list.eval(pl.when(pl.element().is_in(terms))
.then(pl.element())
.otherwise(None))
.list.drop_nulls()
.list.join(' ')
)
.collect()
)

shape: (1, 1)
┌─────┐
│ a │
│ --- │
│ str │
╞═════╡
│ z │
└─────┘

Ради потомков, он заменяет мою предыдущую попытку использовать .map_elements():
import polars as pl
import re

terms = ['a', 'z']

(pl.LazyFrame({'a':['x y z']})
.select(pl.col('a')
.map_elements(lambda x: ' '.join(list(set(re.findall('|'.join(terms), x)))),
return_dtype = pl.String)
)
._fetch()
)


Подробнее здесь: https://stackoverflow.com/questions/773 ... if-they-ma
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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