Как избежать переполнения при выполнении арифметических операций над беззнаковыми столбцами PolarsPython

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

Сообщение Anonymous »

Можно ли привести выражение к определенному типу данных без приведения исходных столбцов?
Рассмотрим следующий кадр:

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

import polars as pl

df = pl.DataFrame({"A": [1, 2, 3], "B": [4, 5, 6]}, schema={'A': pl.UInt8, 'B': pl.UInt8})

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

┌─────┬─────┐
│ A   ┆ B   │
│ --- ┆ --- │
│ u8  ┆ u8  │
╞═════╪═════╡
│ 1   ┆ 4   │
│ 2   ┆ 5   │
│ 3   ┆ 6   │
└─────┴─────┘
Теперь используем выражение:

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

df = df.with_columns((pl.col("A") - pl.col("B")).alias("C"))

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

┌─────┬─────┬─────┐
│ A   ┆ B   ┆ C   │
│ --- ┆ --- ┆ --- │
│ u8  ┆ u8  ┆ u8  │
╞═════╪═════╪═════╡
│ 1   ┆ 4   ┆ 253 │
│ 2   ┆ 5   ┆ 253 │
│ 3   ┆ 6   ┆ 253 │
└─────┴─────┴─────┘
Это, очевидно, правильно с точки зрения компьютерной науки, но непрактично. Могу ли я решить эту проблему, сначала приведя «A» и «B» к целому числу со знаком, или есть лучший/более краткий способ?


Подробнее здесь: https://stackoverflow.com/questions/792 ... rs-columns
Ответить

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

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

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

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

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