Агрегированный столбец со списком строк с пересечением элементов с полярамиPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Агрегированный столбец со списком строк с пересечением элементов с полярами

Сообщение Anonymous »

Я пытаюсь объединить некоторые строки в моем фрейме данных с помощью столбца 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
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Измените цвет заголовка с прозрачного на белый с помощью наблюдателя за пересечением реакции.
    Anonymous » » в форуме CSS
    0 Ответы
    30 Просмотры
    Последнее сообщение Anonymous
  • Меню липких ссылок с реакцией-пересечением-наблюдателем
    Anonymous » » в форуме CSS
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Проблема с красной линией и красным пересечением файлов сервлетов в eclipse
    Anonymous » » в форуме JAVA
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Замените операцию поворота для использования в ленивой оценке с полярами.
    Anonymous » » в форуме Python
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Как объединить head(n) и Tail(n) в одну группу_by с полярами
    Anonymous » » в форуме Python
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous

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