В этих списках есть пустые элементы, которые мне нужно отфильтровать.
Я использовал следующий метод:
Код: Выделить всё
df_main = df_main.with_columns(
df_main['ColumnList'].list.eval(
pl.element().filter(
pl.element() != ""))
.alias('ColumnList')
)
Еще один медленный шаг — удалить пробелы из каждого элемента в списках (около 10 секунд):
Код: Выделить всё
df_main = df_main.with_columns(df_main['ColumnList'].list.eval(pl.element().str.strip_chars()).alias('ColumnList') )
Код: Выделить всё
def FilterEmptyAndTrim(inList):
lst1 = list(filter(lambda x : x != '' , inList)) # filter out empty items in the list
return [s.strip() for s in lst1] # trim the usefull item in the list
df_main = df_main.with_columns(
(df_main['ColumnList'].map_elements(FilterEmptyAndTrim)).alias('ColumnList'))
Вот пример данных, подобных моим данным:< /p>
Код: Выделить всё
import polars as pl
df_main = pl.DataFrame({
"ColumnList": [
['a ' , 'b' , '' ,' c', 'd' ],
['a ' , '' ,' b', '' , 'd' ],
['a ' ,' b' , '' ,' c', 'd' ],
['a ' , 'b' ,' b', '' , ' d ' ],]
})
df_main
Заранее спасибо
Подробнее здесь: https://stackoverflow.com/questions/772 ... ent-filter