Оцените количество «истинных» экземпляров с помощью python-поляр.Python

Программы на Python
Anonymous
Оцените количество «истинных» экземпляров с помощью python-поляр.

Сообщение Anonymous »

Я работаю над фреймом данных следующей структуры:

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

df = pl.DataFrame({
"datetime": [
"2024-09-24 00:00",
"2024-09-24 01:020",
"2024-09-24 02:00",
"2024-09-24 03:00",
],
"Bucket1": [2.5, 8, 0.7, 12],
"Bucket2": [3.7, 10.1, 25.9, 9.9],
"Bucket3": [40.0, 15.5, 10.7, 56],
})
Моя цель — вывести таблицу, которая подсчитывает, сколько раз группа значений появляется в моем наборе данных, примерно так:

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

shape: (4, 2)
┌───────────────────┬──────┐
│ datetime          ┆ 0-10 │
│ ---               ┆ ---  │
│ str               ┆ u32  │
╞═══════════════════╪══════╡
│ 2024-09-24 00:00  ┆ 2    │
│ 2024-09-24 01:020 ┆ 1    │
│ 2024-09-24 02:00  ┆ 1    │
│ 2024-09-24 03:00  ┆ 1    │
└───────────────────┴──────┘
Я попробовал несколько подходов, например, используя pl.when вместе с .is_between, чтобы сделать что-то вроде того, когда (Bucket1.is_between(0, 10, закрыто) ="left") | Bucket1.is_between(0, 10, close="left")), then (1)
Но результат просто оценивается как 1 независимо от того, как многие сегменты оцениваются как True.
а также с использованием списка конкатов

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

columns = ["Bucket1", "Bucket2", "Bucket3"]
df.with_columns(
pl.concat_list(
[pl.col(col).is_between(0,10,closed="left") for col in columns]
)
.arr.sum()
.alias("0-10")
)
Первый подход не сработал, поскольку он просто возвращает список логических значений. Второй выдает ошибку: неверный ввод для «col». Ожидается итерация типа «str» или «DataType», получена итерация «Expr».
Как я могу решить возникла проблема при использовании Polar?
Большое спасибо!

Подробнее здесь: https://stackoverflow.com/questions/790 ... hon-polars

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