Как в агрегации Polars group_by объединить строковые значения в каждой группе?Python

Программы на Python
Ответить
Anonymous
 Как в агрегации Polars group_by объединить строковые значения в каждой группе?

Сообщение Anonymous »

При группировке кадра данных Polars в Python, как объединить строковые значения из одного столбца по строкам в каждой группе?
Например, учитывая следующий DataFrame:
import polars as pl

df = pl.DataFrame(
{
"col1": ["a", "b", "a", "b", "c"],
"col2": ["val1", "val2", "val1", "val3", "val3"]
}
)

Исходный df:
shape: (5, 2)
┌──────┬──────┐
│ col1 ┆ col2 │
│ --- ┆ --- │
│ str ┆ str │
╞══════╪══════╡
│ a ┆ val1 │
│ b ┆ val2 │
│ a ┆ val1 │
│ b ┆ val3 │
│ c ┆ val3 │
└──────┴──────┘

Я хочу запустить операцию group_by, например:

df.group_by('col1').agg(
col2_g = pl.col('col2').some_function_like_join(',')
)

Ожидаемый результат:
┌──────┬───────────┐
│ col1 ┆ col2_g │
│ --- ┆ --- │
│ str ┆ str │
╞══════╪═══════════╡
│ a ┆ val1,val1 │
│ b ┆ val2,val3 │
│ c ┆ val3 │
└──────┴───────────┘

Как называется функция some_function_like_join?
Я пробовал следующие методы, и ни один из них не помог:
df.group_by('col1').agg(pl.col('col2').list.concat(','))
df.group_by('col1').agg(pl.col('col2').join(','))
df.group_by('col1').agg(pl.col('col2').list.join(','))


Подробнее здесь: https://stackoverflow.com/questions/762 ... -in-each-g
Ответить

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

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

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

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

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