кумулятивное добавление структуры в список построчно;
если в списке существует такое же поле 'key', агрегируйте две структуры по полю суммы struct 'val';;
если оно существует в списке li>
если поле структуры 'val' имеет значение null.
Преобразование может быть уродливым, если использовать iter_rows() и to_list() для итерации кадра данных строки со списком промежуточных типов данных Python, dict. Но этот путь медленный. Как это можно решить, просто используя функции Polars, чтобы быстро и элегантно?
PS: Спасибо, @jqurious, напоминание, есть дополнительные требования, поэтому я обновил вопрос.
Мне нужно выполнить такое сложное преобразование фрейма данных: [code]original_dataframe = pl.DataFrame({'index': ['A', 'B', 'C', 'D', 'E', 'F', 'G'], 'content': [{'key': 3, 'val': 20}, {'key': 4, 'val': 50}, {'key': 3, 'val': 8}, {'key': 5, 'val': 70}, {'key': 4, 'val': -60}, {'key': 2, 'val': 30}, {'key': 4, 'val': 5}]}) ┌───────┬───────────┐ │ index ┆ content │ │ --- ┆ --- │ │ str ┆ struct[2] │ ╞═══════╪═══════════╡ │ A ┆ {3,20} │ │ B ┆ {4,50} │ │ C ┆ {3,8} │ │ D ┆ {5,70} │ │ E ┆ {4,-60} │ │ F ┆ {2,30} │ │ G ┆ {4,5} │ └───────┴───────────┘ || \/ ┌───────┬──────────────────────────┐ │ index ┆ content │ │ --- ┆ --- │ │ str ┆ list[struct[2]] │ ╞═══════╪══════════════════════════╡ │ A ┆ [{3,20}] │ │ B ┆ [{3,20}, {4,50}] │ │ C ┆ [{3,28}, {4,50}] │ │ D ┆ [{3,28}, {4,50}, {5,70}] │ │ E ┆ [{3,28}, {5,70}] │ └───────┴──────────────────────────┘ [/code] Это преобразование сочетает в себе: [list] [*]кумулятивное добавление структуры в список построчно; [*]если в списке существует такое же поле 'key', агрегируйте две структуры по полю суммы struct 'val';; [*]если оно существует в списке li> если поле структуры 'val' имеет значение null. [/list] Преобразование может быть уродливым, если использовать iter_rows() и to_list() для итерации кадра данных строки со списком промежуточных типов данных Python, dict. Но этот путь медленный. Как это можно решить, просто используя функции Polars, чтобы быстро и элегантно? PS: Спасибо, @jqurious, напоминание, есть дополнительные требования, поэтому я обновил вопрос.[code]pl.DataFrame({'index': ['A', 'B', 'C', 'D', 'E', 'F'], 'content': [{'key': 3, 'val': 20}, {'key': 4, 'val': 50}, {'key': 3, 'val': 8}, {'key': 2, 'val': 30}, {'key': 4, 'val': -60}, {'key': 4, 'val': 5}]})
┌───────┬───────────┐ │ index ┆ content │ │ --- ┆ --- │ │ str ┆ struct[2] │ ╞═══════╪═══════════╡ │ A ┆ {3,20} │ │ B ┆ {4,50} │ │ C ┆ {3,8} │ │ D ┆ {2,30} │ │ E ┆ {4,-60} │ │ F ┆ {4,5} │ └───────┴───────────┘ || \/ ┌───────┬──────────────────────────┐ │ index ┆ content │ │ --- ┆ --- │ │ str ┆ list[struct[2]] │ ╞═══════╪══════════════════════════╡ │ A ┆ [{3,20}] │ │ B ┆ [{3,20}, {4,50}] │ │ C ┆ [{3,28}, {4,50}] │ │ D ┆ [{2,30}, {3,28}, {4,50}] │ │ E ┆ [{2,30}, {3,28}] │ │ F ┆ [{2,30}, {3,28}, {4,5}] │ └───────┴──────────────────────────┘ [/code] обновленное требование: [list] [*]если поле структуры 'val' 0, оно снова должно быть накопительным агрегатом; [/list]
Некоторые из моих столбцов в моем кадре данных Polars имеют тип dtype pl.List(pl.Struct). Я пытаюсь заменить эти столбцы, чтобы получить несколько столбцов, представляющих собой списки скалярных значений.
Вот пример столбца, который я пытаюсь...
Да, IdeOne показывает это медленнее. В G ++ 4.9.3 в моей виртуальной машине (ubuntu edwolf) я получаю: 830 b: 460. В любом случае, почему один быстрее, чем другой? Я предположил, что A выталкивает от ссылки, а B - это стоимость, но я не понимаю,...
Используя генератор исходного кода, я хочу сгенерировать один файл, построенный на основе совокупного списка всех преобразованных узлов (а не по одному).
Я это сделаю используйте пример на основе Enum, поскольку они распространены. Дано (упрощено...
Я работаю над пользовательской аутентификацией для Laravel 11, используя только laravel/ui, поскольку мне не нужны никакие функции Breeze/Jetstream.
В моей таблице пользователей (пользовательская, внешняя) service), «адрес электронной почты»...
Я работаю над пользовательской аутентификацией для Laravel 11, используя только laravel/ui, поскольку мне не нужны никакие функции Breeze/Jetstream.
В моей таблице пользователей (пользовательская, внешняя) service), «адрес электронной почты»...