Comments (2)
The unary minus operator (negation) has recently been updated in #13776 (not released yet).
When trying to negate unsigned columns, you will get an error. Negating unsigned numbers doesn't make sense.
import polars as pl
s = pl.Series([1], dtype=pl.UInt8)
out = -s
# polars.exceptions.InvalidOperationError: `neg` operation not supported for dtype `u8`
Cast to a signed type first to avoid this:
import polars as pl
s = pl.Series([1], dtype=pl.UInt8)
out = -s.cast(pl.Int8)
print(out) # -1
Subtracting two unsigned numbers can underflow, as you've noticed. When working with unsigned numbers, you are responsible for making sure this doesn't happen, otherwise it will panic. Generally it is advised to use signed integers when doing arithmetic with subtraction/negation.
from polars.
Note that having to cast the result of null_count()
and len()
before negating them (but only for expressions; for Series it's still an int) makes it more difficult to write code that supports both Series and expressions. You have to do, e.g.:
num_null = foo.null_count() if isinstance(foo, pl.Series) else foo.null_count().cast(pl.Int64)
from polars.
Related Issues (20)
- Panic on DataFrame.pivot when using common aggregate function on string data HOT 2
- Read data with Float32 and Float64 have different outputs HOT 2
- `group_by` with `map_elements` result incorrectly gets wrapped in a list for lazyframes
- Support writing Parquet `distinct_count` statistics for all types
- Platform Dependent pyo3_runtime.PanicException HOT 3
- `.struct.field('*')` PanicException when used after `.list.to_struct()`
- DATE() SQL function always returns Date type, even with DateTime strftime format string HOT 2
- Add formatting option to `write_excel` for dataframe values HOT 1
- Performance scaling not working (at least as expected) HOT 6
- Parquet file writer uses non-compliant list element field name HOT 1
- Windowed `std` does not work correctly (non-deterministic, incorrect values) HOT 1
- If I pass weights to rolling_var, the actual ddof will be 0 no matter what ddof I passed
- Projection pushdown with hive partitions may not be respected HOT 1
- Exclude directories from expanded glob result HOT 3
- Inconsistent behavior of `with_columns` + `lit` on empty frames HOT 3
- Add bincode serialization format to `serialize`/`deserialize` methods HOT 1
- DataFrame.to_numpy() converts None to nan HOT 8
- Literal type is not inferred in constructor
- `when/then` + `.name.keep()` ComputeError: duplicate column name
- Calculating median cast integers as floats
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from polars.