Skip to content

Polars Series

Code

import polars as pl

Create

Create a new Series

Create empty series

Action Code Details
Empty series (of object type)
pl.Series()
Empty boolean series
pl.Series(dtype=pl.Boolean)
Empty enum series
pl.Series(dtype=pl.Enum(['a', 'b', 'c']))
Empty categorical series without defined categories
pl.Series(dtype=pl.Categorical)
Empty int series
pl.Series(dtype=pl.Int64)
Empty float series
pl.Series(dtype=pl.Float64)
Empty date series
pl.Series(dtype=pl.Date)
Empty datetime series
pl.Series(dtype=pl.Datetime)
Empty list series
pl.Series(dtype=pl.List)
Empty list of floats series
pl.Series(dtype=pl.List(float))

Create series of constant values

Action Code Details
Series of length n filled with nulls
pl.Series([None] * n)
Constant value v of length n
pl.Series([v] * n)

Create List series

Action Code Details
Define list series with multiple list elements
pl.Series([[1], [2, 3], [])
Define scalar list series
pl.Series([[1, 2, 3]])
Create scalar list series from a list
x = [1, 2, 3]
pl.Series([x])
Create list series from a list of lists
x = [
    [1, 2], [], [3, 4, 5], [6]
]
pl.Series(x)

Test

Action Code Details
Is series or subclass
isinstance(x, pl.Series)
Is series and not subclass
type(x) is pl.Series
Empty
x.is_empty()
Not empty
not x.is_empty()
Has length n
len(x) == n
Is boolean series
x.dtype == pl.Boolean
Is categorical series
x.dtype == pl.Categorical
Is enum series
x.dtype == pl.Enum
Is numeric series
x.dtype.is_numeric()
For example, pl.Int8 or pl.Float64
Is integer series
x.dtype.is_integer()
Is unsigned integer series
x.dtype.is_unsigned_integer()
Is float series
x.dtype.is_float()
Is date series
x.dtype == pl.Date
Is datetime64 series
x.dtype == pl.Datetime
Is string series
x.dtype == pl.String
Is list series
x.dtype == pl.List
Is nested series (struct or list)
x.dtype.is_nested()
No duplicate elements (all unique)
x.is_unique().all()
Any duplicate elements
x.is_duplicated().any()
Contains null
x.has_nulls()
Contains only nulls
x.is_null().all()
Contains no nulls
not x.has_nulls()
Contains NaN
x.is_nan().any()
Contains no NaNs
x.is_not_nan().all()
Contains infinity
x.is_infinite().any()
Contains only finite values
x.is_finite().all()
Contains value v, ignoring nulls
v in x
Contains any of the values v1, v2, ignoring nulls
x.is_in([v1, v2]).any()
Does not contain value v
v not in x
Are elements in increasing order
x.is_sorted()
Presence of nulls can lead to unexpected behavior, as they need to come first.
Are elements in decreasing order
x.is_sorted(descending=True)
Presence of nulls can lead to unexpected behavior, as they need to come first.

Test boolean series

Action Code Details
All values are True
x.all()
All values are False
not x.any()

Tests for string series

Action Code Details
Contains string s
x.str.contains(s).any()

Extract

Action Code Details
Number of elements
len(x)
Hash
hash(tuple(x))
Data type (dtype)
x.dtype
Number of unique elements, ignoring nulls
x.n_unique()
Smallest value, ignoring nulls
x.min()
Index of the smallest value, ignoring NAs
x.arg_min()
Greatest value, ignoring nulls
x.max()
Index of the greatest value, ignoring NAs
x.arg_max()
Count occurrence per value
x.value_counts()

Type-specific operations

Enum

Categorical

Action Code Details
Get categories
x.cat.get_categories()

String

List

Action Code Details
Get length of each list element
x.list.len()
Get the _i_th item of each list element
x.list[i]

Struct

Derive

Order

Action Code Details
Reverse
x.reverse()
Sort ascendingly
x.sort()
Nulls are placed first
Sort descendingly
x.sort(descending=True)
Nulls are placed first
Shuffle
x.shuffle()

Transform

Action Code Details
Fill null by value_v_
x.fill_null(value=v)
Fill NaN by value_v_
x.fill_nan(value=v)
Replace value v by w
x.replace(v, w)
Replace value v by null
x.replace(v, None)
Map all values
x = pl.Series([1, 2, 3])
x.replace_strict([1, 2, 3], [10, -2, -3])
Map all values using a dict
x = pl.Series([1, 2, 3])
x.replace_strict({1: 10, 2: -2, 3: -3})

Mask

Action Code Details
Duplicate mask
x.is_duplicated()

Cast to type

Action Code Details
Cast to boolean
x.cast(bool)
Cast series to numeric dtype
x.cast(float)
Cast to integer
x.cast(int)
Cast to float
x.cast(float)
Cast to string
x.cast(str)
Cast to categorical
x.cast(str).cast(pl.Categorical)
Cast categorical to integer codes
x.to_physical()
Cast to enum
x.cast(pl.Enum)
Cast enum to integer codes
x.to_physical()

Grow

Shrink

Action Code Details
First n elements
x.head(n)
Last n elements
x.tail(n)
Slice
x[a:b]
Select n elements starting from index i
x.slice(i, n)
Keep indices
x.gather([1, 3])
Keep every n_th element, starting from index _i
x.gather_every(n, i)
Sample n elements
x.sample(n)
Drop null elements
x.drop_nulls()
Drop NaN elements
x.drop_nans()
Keep n largest elements
x.top_k(n)
Keep n smallest elements
x.bottom_k(n)
Remove duplicates
x.unique()

Combine

Action Code Details
Append another series
x.append(y)

Convert

Action Code Details
To list
x.to_list()
To list
list(x)
To numpy array
x.to_numpy()
To Polars data frame with single column
x.to_frame('col1')
To instantiatable string representation
x.to_init_repr()
Dummy encoding of values (as data frame)
x.to_dummies()