Код: Выделить всё
import polars as pl
from decimal import Decimal
df = pl.from_dicts(
[
{"id": 1, "value": Decimal("100.0"), "items": ["A"]},
{"id": 2, "value": Decimal("150.000"), "items": ["A", "B"]},
{"id": 3, "value": Decimal("70.0000"), "items": ["A", "B", "C"]},
]
)
id → pl.Int64
значение → pl.Decimal
items → pl.List(str)
1
100
Код: Выделить всё
["A"]2
150
Код: Выделить всё
["A", "B"]3
70
Код: Выделить всё
["A", "B", "C"]И следующий словарь Python:< /p>
Код: Выделить всё
coef = {"A": Decimal("0.2"), "B": Decimal("0.35"), "C": Decimal("0.45") }
Код: Выделить всё
┌─────┬────────────────┬──────┐
│ id ┆ value ┆ item │
│ --- ┆ --- ┆ --- │
│ i64 ┆ decimal[*,10] ┆ str │
╞═════╪════════════════╪══════╡
│ 1 ┆ 100.0000000000 ┆ A │
│ 2 ┆ 54.5454000000 ┆ A │
│ 2 ┆ 95.4544500000 ┆ B │
│ 3 ┆ 14.0000000000 ┆ A │
│ 3 ┆ 24.5000000000 ┆ B │
│ 3 ┆ 31.5000000000 ┆ C │
└─────┴────────────────┴──────┘
Обратите внимание, что длина словаря coef не всегда одинакова. По сути, это выглядит как {key1: coef1, key2: coef2, ... с n ключами и n значениями (сумма которых равна Decimal(1)) .
Кроме того, я работаю с десятичными значениями (а не со значениями float64).
Подробнее здесь: https://stackoverflow.com/questions/760 ... ted-values