Добавьте строку итогов для определенных столбцов Polars (и нулевое значение для других), не перечисляя каждый столбец отPython

Программы на Python
Anonymous
 Добавьте строку итогов для определенных столбцов Polars (и нулевое значение для других), не перечисляя каждый столбец от

Сообщение Anonymous »

Скажем, у меня есть этот фрейм данных:

Код: Выделить всё

import polars as pl

df = pl.DataFrame(dict(
j=[2, 7, 1, 8],
k=[False, True, True, False],
l=['foo', 'bar', 'quux', 'bin'],
u=[5.0, 8.0, 13.0, 21.0],
))
print(df)

Код: Выделить всё

shape: (4, 4)
┌─────┬───────┬──────┬──────┐
│ j   ┆ k     ┆ l    ┆ u    │
│ --- ┆ ---   ┆ ---  ┆ ---  │
│ i64 ┆ bool  ┆ str  ┆ f64  │
╞═════╪═══════╪══════╪══════╡
│ 2   ┆ false ┆ foo  ┆ 5.0  │
│ 7   ┆ true  ┆ bar  ┆ 8.0  │
│ 1   ┆ true  ┆ quux ┆ 13.0 │
│ 8   ┆ false ┆ bin  ┆ 21.0 │
└─────┴───────┴──────┴──────┘
Я могу суммировать строки только для определенных столбцов и установить для других значение «Нет»:

Код: Выделить всё

df_sum = (df
.select(
pl.col('j').sum(),
pl.lit(None).alias('k'),
pl.lit(None).alias('l'),
pl.col('u').sum(),
)
)
print(df_sum)

Код: Выделить всё

shape: (1, 4)
┌─────┬──────┬──────┬──────┐
│ j   ┆ k    ┆ l    ┆ u    │
│ --- ┆ ---  ┆ ---  ┆ ---  │
│ i64 ┆ null ┆ null ┆ f64  │
╞═════╪══════╪══════╪══════╡
│ 18  ┆ null ┆ null ┆ 47.0 │
└─────┴──────┴──────┴──────┘
Я хотел бы сохранить порядок столбцов, чтобы затем можно было соединить в Polars.concat два кадра и получить один кадр данных со строкой итогов.

Код: Выделить всё

shape: (5, 4)
┌─────┬───────┬──────┬──────┐
│ j   ┆ k     ┆ l    ┆ u    │
│ --- ┆ ---   ┆ ---  ┆ ---  │
│ i64 ┆ bool  ┆ str  ┆ f64  │
╞═════╪═══════╪══════╪══════╡
│ 2   ┆ false ┆ foo  ┆ 5.0  │
│ 7   ┆ true  ┆ bar  ┆ 8.0  │
│ 1   ┆ true  ┆ quux ┆ 13.0 │
│ 8   ┆ false ┆ bin  ┆ 21.0 │
│ 18  ┆ null  ┆ null ┆ 47.0 │
└─────┴───────┴──────┴──────┘
Существует два возможных варианта использования, которые определяют, что означает «определенный столбец»:
  • Столбцы с определенными типами
  • Столбцы с определенными именами
Есть ли способ сделать это без перечисления каждого столбца отдельно?>

Подробнее здесь: https://stackoverflow.com/questions/783 ... hout-listi

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