Я пытаюсь объединить некоторые строки в моем фрейме данных с помощью столбца list[str]. Для каждого идентификатора мне нужно пересечение всех списков в группе. Не уверен, что я просто слишком много думаю об этом, но сейчас я не могу предложить решение. Помогите, пожалуйста?
df = pl.DataFrame(
{"id": [1,1,2,2,3,3],
"values": [["A", "B"], ["B", "C"], ["A", "B"], ["B", "C"], ["A", "B"], ["B", "C"]]
}
)
Ожидаемый результат
shape: (3, 2)
┌─────┬───────────┐
│ idx ┆ values │
│ --- ┆ --- │
│ i64 ┆ list[str] │
╞═════╪═══════════╡
│ 1 ┆ ["B"] │
│ 2 ┆ ["B"] │
│ 3 ┆ ["B"] │
└─────┴───────────┘
Я пробовал кое-что, но безуспешно.
df.group_by("id").agg(
pl.reduce(function=lambda acc, x: acc.list.set_intersection(x),
exprs=pl.col("values"))
)
# shape: (3, 2)
# ┌─────┬──────────────────────────┐
# │ id ┆ values │
# │ --- ┆ --- │
# │ i64 ┆ list[list[str]] │
# ╞═════╪══════════════════════════╡
# │ 1 ┆ [["A", "B"], ["B", "C"]] │
# │ 3 ┆ [["A", "B"], ["B", "C"]] │
# │ 2 ┆ [["A", "B"], ["B", "C"]] │
# └─────┴──────────────────────────┘
Еще один
df.group_by("id").agg(
pl.reduce(function=lambda acc, x: acc.list.set_intersection(x),
exprs=pl.col("values").explode())
)
# shape: (3, 2)
# ┌─────┬──────────────────────┐
# │ id ┆ values │
# │ --- ┆ --- │
# │ i64 ┆ list[str] │
# ╞═════╪══════════════════════╡
# │ 3 ┆ ["A", "B", "B", "C"] │
# │ 1 ┆ ["A", "B", "B", "C"] │
# │ 2 ┆ ["A", "B", "B", "C"] │
# └─────┴──────────────────────┘
Подробнее здесь: https://stackoverflow.com/questions/775 ... -with-pola
Агрегированный столбец со списком строк с пересечением элементов с полярами ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Измените цвет заголовка с прозрачного на белый с помощью наблюдателя за пересечением реакции.
Anonymous » » в форуме CSS - 0 Ответы
- 30 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Проблема с красной линией и красным пересечением файлов сервлетов в eclipse
Anonymous » » в форуме JAVA - 0 Ответы
- 13 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Замените операцию поворота для использования в ленивой оценке с полярами.
Anonymous » » в форуме Python - 0 Ответы
- 14 Просмотры
-
Последнее сообщение Anonymous
-