Я пытаюсь сделать так, чтобы все группы для данного фрейма данных имели одинаковый размер. В Отправной точке ниже я показываю пример фрейма данных, который я хочу преобразовать. В разделе Цель я пытаюсь продемонстрировать, чего пытаюсь достичь. Я хочу сгруппировать по группе столбцов, сделать все группы размером 4 и заполнить «отсутствующие» значения нулевыми значениями — надеюсь, это понятно.
Я пробовал несколько подходов, но не смог понять этого.
Отправная точка
Код: Выделить всё
dfa = pl.DataFrame(data={'group': ['a', 'a', 'a', 'b', 'b', 'c'],
'value': ['a1', 'a2', 'a3', 'b1', 'b2', 'c1']})
┌───────┬───────┐
│ group ┆ value │
│ --- ┆ --- │
│ str ┆ str │
╞═══════╪═══════╡
│ a ┆ a1 │
│ a ┆ a2 │
│ a ┆ a3 │
│ b ┆ b1 │
│ b ┆ b2 │
│ c ┆ c1 │
└───────┴───────┘
Код: Выделить всё
>>> make_groups_uniform(dfa, group_by='group', group_size=4)
┌───────┬───────┐
│ group ┆ value │
│ --- ┆ --- │
│ str ┆ str │
╞═══════╪═══════╡
│ a ┆ a1 │
│ a ┆ a2 │
│ a ┆ a3 │
│ a ┆ null │
│ b ┆ b1 │
│ b ┆ b2 │
│ b ┆ null │
│ b ┆ null │
│ c ┆ c1 │
│ c ┆ null │
│ c ┆ null │
│ c ┆ null │
└───────┴───────┘
Код: Выделить всё
polars: 1.1.0Подробнее здесь: https://stackoverflow.com/questions/789 ... -same-size
Мобильная версия