В настоящее время у меня работает следующая версия:
Код: Выделить всё
import polars as pl
import numpy as np
df = pl.DataFrame({'animal': ['goat','tiger','goat','tiger','lion','goat','tiger','lion'], 'food': ['grass','rabbit','carrots','deer','zebra','water','water','water']})
dl = df.group_by('animal', maintain_order=True).all()
dl
Код: Выделить всё
shape: (3, 2)
┌────────┬───────────────────────────────┐
│ animal ┆ food │
│ --- ┆ --- │
│ str ┆ list[str] │
╞════════╪═══════════════════════════════╡
│ goat ┆ ["grass", "carrots", "water"] │
│ tiger ┆ ["rabbit", "deer", "water"] │
│ lion ┆ ["zebra", "water"] │
└────────┴───────────────────────────────┘
Код: Выделить всё
refn = dl['food'][1].to_numpy()
dl = dl.with_columns(
pl.col('food').map_elements(lambda x: np.intersect1d(refn,x.to_numpy()), return_dtype=pl.List(pl.String))
)
dl
Код: Выделить всё
shape: (3, 2)
┌────────┬─────────────────────────────┐
│ animal ┆ food │
│ --- ┆ --- │
│ str ┆ list[str] │
╞════════╪═════════════════════════════╡
│ goat ┆ ["water"] │
│ tiger ┆ ["deer", "rabbit", "water"] │
│ lion ┆ ["water"] │
└────────┴─────────────────────────────┘
TIA.
Подробнее здесь: https://stackoverflow.com/questions/726 ... t-elements
Мобильная версия