Работа с типом столбцов List[int] в python-polars [дубликат]Python

Программы на Python
Ответить
Anonymous
 Работа с типом столбцов List[int] в python-polars [дубликат]

Сообщение Anonymous »

Много раз я оказывался в ситуации, когда у меня есть DataFrame и один столбец имеет тип List[int].
Например, у меня есть следующий DF:

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

df = pl.DataFrame(
{"group": ["A", "A", "B", "B", "B", "B"],
"value": [[3, 2, 5], [2,2,2], [2,5,9,4], [5,4,7,5,1], [9,4,5], [2,2]]}
)
Обычно в таких ситуациях я использую методы разнесения и group_by.

Однако при работе с большим количеством столбцов код может стать несколько «грязнее».
Чтобы решить эту проблему, я решил использовать метод map_elements:

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

(
df
.group_by('group')
.agg(
(pl.col('value').map_elements(lambda l: pl.concat(l)))
)
.with_columns(
pl.col('value').map_elements(lambda l: pl.Series.median(l))
)
)
К сожалению, этот подход жертвует преимуществами распараллеливания, которые предлагает Polars.
Кроме того, его выполнение требует довольно больших ресурсов. В случаях, когда у меня миллионы строк, время выполнения может растянуться от секунд до минут.
Есть ли лучший способ работы со List[int]?
Есть ли хороший способ оптимизировать мой код?

Подробнее здесь: https://stackoverflow.com/questions/769 ... hon-polars
Ответить

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

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

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

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

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