GOOGLE ADS

среда, 27 апреля 2022 г.

Условная агрегация строк в полярах

У меня есть данные с двумя столбцами в следующем формате:

160 B
540 I
550 I
590 B
370 I

И я хочу объединить ячейки, которые приходят в виде Bв дополнение к последовательным I(т.е. BI*):

160 540 550
590 370

Как я могу добиться чего-то подобного с полярами?


Решение проблемы

Если вы довольны циклом for, то все. Я также пытался использовать функции обработки данных полярами, но мне не удалось сделать это таким образом.

import polars as pl
df = pl.DataFrame({
"nums": [160, 540, 550, 590, 370],
"letters": ["B", "I", "I", "B", "I"]
})
out = []
for d, l in zip(df["nums"], df["letters"]):
if l == "B":
out.append([d])
elif l == "I":
out[-1].append(d)
else:
raise Exception("Unknown letter: " + l)
print(out)

Комментариев нет:

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...