Код: Выделить всё
df.with_columns(pl.col('decile').cast(pl.Int8))
Странно то, что какими бы ни были исходные значения дециля столбца, они всегда будут неожиданно сопоставляться с [0, 9] при приведении к целочисленному типу данных. .
Я пытаюсь преобразовать значения в целочисленный тип данных для построения графиков.
Вот минимальный воспроизводимый пример:
Код: Выделить всё
size = 1e3
df = pl.DataFrame({
"id": np.random.randint(50, size=int(size), dtype=np.uint16),
"amount": np.round(np.random.uniform(10, 100000, int(size)).astype(np.float32), 2),
"quantity": np.random.randint(1, 7, size=int(size), dtype=np.uint16),
})
df = (df
.group_by("id")
.agg(revenue=pl.sum("amount"), tot_quantity=pl.sum("quantity"))
)
df = (df.with_columns(
pl.col('revenue')
.qcut(10, labels=[f'q{i:02}' for i in range(10, 0, -1)])
.alias("decile")
))
Подробнее здесь: https://stackoverflow.com/questions/769 ... ger-in-pol