Enum Expr
pub enum Expr {
Show 28 variants
Alias(Arc<Expr>, PlSmallStr),
Column(PlSmallStr),
Columns(Arc<[PlSmallStr]>),
DtypeColumn(Vec<DataType>),
IndexColumn(Arc<[i64]>),
Literal(LiteralValue),
BinaryExpr {
left: Arc<Expr>,
op: Operator,
right: Arc<Expr>,
},
Cast {
expr: Arc<Expr>,
dtype: DataType,
options: CastOptions,
},
Sort {
expr: Arc<Expr>,
options: SortOptions,
},
Gather {
expr: Arc<Expr>,
idx: Arc<Expr>,
returns_scalar: bool,
},
SortBy {
expr: Arc<Expr>,
by: Vec<Expr>,
sort_options: SortMultipleOptions,
},
Agg(AggExpr),
Ternary {
predicate: Arc<Expr>,
truthy: Arc<Expr>,
falsy: Arc<Expr>,
},
Function {
input: Vec<Expr>,
function: FunctionExpr,
options: FunctionOptions,
},
Explode(Arc<Expr>),
Filter {
input: Arc<Expr>,
by: Arc<Expr>,
},
Window {
function: Arc<Expr>,
partition_by: Vec<Expr>,
order_by: Option<(Arc<Expr>, SortOptions)>,
options: WindowType,
},
Wildcard,
Slice {
input: Arc<Expr>,
offset: Arc<Expr>,
length: Arc<Expr>,
},
Exclude(Arc<Expr>, Vec<Excluded>),
KeepName(Arc<Expr>),
Len,
Nth(i64),
RenameAlias {
function: SpecialEq<Arc<dyn RenameAliasFn>>,
expr: Arc<Expr>,
},
Field(Arc<[PlSmallStr]>),
AnonymousFunction {
input: Vec<Expr>,
function: LazySerde<SpecialEq<Arc<dyn ColumnsUdf>>>,
output_type: SpecialEq<Arc<dyn FunctionOutputField>>,
options: FunctionOptions,
},
SubPlan(SpecialEq<Arc<DslPlan>>, Vec<String>),
Selector(Selector),
}
lazy
only.Expand description
Expressions that can be used in various contexts.
Queries consist of multiple expressions.
When using the polars lazy API, don’t construct an Expr
directly; instead, create one using
the functions in the polars_lazy::dsl
module. See that module’s docs for more info.
Variants§
Alias(Arc<Expr>, PlSmallStr)
Column(PlSmallStr)
Columns(Arc<[PlSmallStr]>)
DtypeColumn(Vec<DataType>)
IndexColumn(Arc<[i64]>)
Literal(LiteralValue)
BinaryExpr
Cast
Sort
Gather
SortBy
Agg(AggExpr)
Ternary
A ternary operation if true then “foo” else “bar”
Function
Explode(Arc<Expr>)
Filter
Window
Polars flavored window functions.
Wildcard
Slice
Fields
Exclude(Arc<Expr>, Vec<Excluded>)
Can be used in a select statement to exclude a column from selection
TODO: See if we can replace Vec<Excluded>
with Arc<Excluded>
KeepName(Arc<Expr>)
Set root name as Alias
Len
Nth(i64)
Take the nth column in the DataFrame
RenameAlias
Field(Arc<[PlSmallStr]>)
AnonymousFunction
Fields
function: LazySerde<SpecialEq<Arc<dyn ColumnsUdf>>>
function to apply
output_type: SpecialEq<Arc<dyn FunctionOutputField>>
output dtype of the function
options: FunctionOptions
SubPlan(SpecialEq<Arc<DslPlan>>, Vec<String>)
Selector(Selector)
Expressions in this node should only be expanding
e.g.
Expr::Columns
Expr::Dtypes
Expr::Wildcard
Expr::Exclude
Implementations§
§impl Expr
impl Expr
pub fn to_field(
&self,
schema: &Schema<DataType>,
ctxt: Context,
) -> Result<Field, PolarsError>
pub fn to_field( &self, schema: &Schema<DataType>, ctxt: Context, ) -> Result<Field, PolarsError>
Get Field result of the expression. The schema is the input data.
pub fn extract_usize(&self) -> Result<usize, PolarsError>
pub fn extract_usize(&self) -> Result<usize, PolarsError>
Extract a constant usize from an expression.
pub fn map_unary(self, function: impl Into<FunctionExpr>) -> Expr
pub fn map_binary(self, function: impl Into<FunctionExpr>, rhs: Expr) -> Expr
pub fn map_ternary( self, function: impl Into<FunctionExpr>, arg1: Expr, arg2: Expr, ) -> Expr
pub fn try_map_n_ary( self, function: impl Into<FunctionExpr>, exprs: impl IntoIterator<Item = Result<Expr, PolarsError>>, ) -> Result<Expr, PolarsError>
pub fn map_n_ary( self, function: impl Into<FunctionExpr>, exprs: impl IntoIterator<Item = Expr>, ) -> Expr
pub fn n_ary(function: impl Into<FunctionExpr>, input: Vec<Expr>) -> Expr
§impl Expr
impl Expr
pub fn eq_missing<E>(self, other: E) -> Expr
pub fn eq_missing<E>(self, other: E) -> Expr
Compare Expr
with other Expr
on equality where None == None
.
pub fn neq_missing<E>(self, other: E) -> Expr
pub fn neq_missing<E>(self, other: E) -> Expr
Compare Expr
with other Expr
on non-equality where None == None
.
pub fn alias<S>(self, name: S) -> Exprwhere
S: Into<PlSmallStr>,
pub fn alias<S>(self, name: S) -> Exprwhere
S: Into<PlSmallStr>,
Rename Column.
pub fn is_not_null(self) -> Expr
pub fn is_not_null(self) -> Expr
Run is_not_null operation on Expr
.
pub fn drop_nulls(self) -> Expr
pub fn drop_nulls(self) -> Expr
Drop null values.
pub fn quantile(self, quantile: Expr, method: QuantileMethod) -> Expr
pub fn quantile(self, quantile: Expr, method: QuantileMethod) -> Expr
Compute the quantile per group.
pub fn agg_groups(self) -> Expr
pub fn agg_groups(self) -> Expr
Get the group indexes of the group by operation.
pub fn append<E>(self, other: E, upcast: bool) -> Expr
pub fn append<E>(self, other: E, upcast: bool) -> Expr
Append expressions. This is done by adding the chunks of other
to this Series
.
pub fn unique_stable(self) -> Expr
pub fn unique_stable(self) -> Expr
Get unique values of this expression, while maintaining order.
This requires more work than Expr::unique
.
pub fn arg_unique(self) -> Expr
pub fn arg_unique(self) -> Expr
Get the first index of unique values of this expression.
pub fn arg_sort(self, sort_options: SortOptions) -> Expr
pub fn arg_sort(self, sort_options: SortOptions) -> Expr
Get the index values that would sort this expression.
pub fn strict_cast(self, dtype: DataType) -> Expr
pub fn strict_cast(self, dtype: DataType) -> Expr
Cast expression to another data type. Throws an error if conversion had overflows. Returns an Error if cast is invalid on rows after predicates are pushed down.
pub fn cast_with_options(
self,
dtype: DataType,
cast_options: CastOptions,
) -> Expr
pub fn cast_with_options( self, dtype: DataType, cast_options: CastOptions, ) -> Expr
Cast expression to another data type.
pub fn sort(self, options: SortOptions) -> Expr
pub fn sort(self, options: SortOptions) -> Expr
Sort with given options.
§Example
let lf = df! {
"a" => [Some(5), Some(4), Some(3), Some(2), None]
}?
.lazy();
let sorted = lf
.select(
vec![col("a").sort(SortOptions::default())],
)
.collect()?;
assert_eq!(
sorted,
df! {
"a" => [None, Some(2), Some(3), Some(4), Some(5)]
}?
);
See SortOptions
for more options.
pub fn map<F>(
self,
function: F,
output_type: SpecialEq<Arc<dyn FunctionOutputField>>,
) -> Expr
pub fn map<F>( self, function: F, output_type: SpecialEq<Arc<dyn FunctionOutputField>>, ) -> Expr
Apply a function/closure once the logical plan get executed.
This function is very similar to Expr::apply
, but differs in how it handles aggregations.
map
should be used for operations that are independent of groups, e.g.multiply * 2
, orraise to the power
apply
should be used for operations that work on a group of data. e.g.sum
,count
, etc.
It is the responsibility of the caller that the schema is correct by giving the correct output_type. If None given the output type of the input expr is used.
pub fn map_many<F>(
self,
function: F,
arguments: &[Expr],
output_type: SpecialEq<Arc<dyn FunctionOutputField>>,
) -> Expr
pub fn map_many<F>( self, function: F, arguments: &[Expr], output_type: SpecialEq<Arc<dyn FunctionOutputField>>, ) -> Expr
pub fn map_list<F>(
self,
function: F,
output_type: SpecialEq<Arc<dyn FunctionOutputField>>,
) -> Expr
pub fn map_list<F>( self, function: F, output_type: SpecialEq<Arc<dyn FunctionOutputField>>, ) -> Expr
Apply a function/closure once the logical plan get executed.
This function is very similar to apply, but differs in how it handles aggregations.
map
should be used for operations that are independent of groups, e.g.multiply * 2
, orraise to the power
apply
should be used for operations that work on a group of data. e.g.sum
,count
, etc.map_list
should be used when the function expects a list aggregated series.
pub fn function_with_options<F>(
self,
function: F,
output_type: SpecialEq<Arc<dyn FunctionOutputField>>,
options: FunctionOptions,
) -> Expr
pub fn function_with_options<F>( self, function: F, output_type: SpecialEq<Arc<dyn FunctionOutputField>>, options: FunctionOptions, ) -> Expr
A function that cannot be expressed with map
or apply
and requires extra settings.
pub fn apply<F>(
self,
function: F,
output_type: SpecialEq<Arc<dyn FunctionOutputField>>,
) -> Expr
pub fn apply<F>( self, function: F, output_type: SpecialEq<Arc<dyn FunctionOutputField>>, ) -> Expr
Apply a function/closure over the groups. This should only be used in a group_by aggregation.
It is the responsibility of the caller that the schema is correct by giving the correct output_type. If None given the output type of the input expr is used.
This difference with map is that apply
will create a separate Series
per group.
map
should be used for operations that are independent of groups, e.g.multiply * 2
, orraise to the power
apply
should be used for operations that work on a group of data. e.g.sum
,count
, etc.
pub fn apply_many<F>(
self,
function: F,
arguments: &[Expr],
output_type: SpecialEq<Arc<dyn FunctionOutputField>>,
) -> Expr
pub fn apply_many<F>( self, function: F, arguments: &[Expr], output_type: SpecialEq<Arc<dyn FunctionOutputField>>, ) -> Expr
Apply a function/closure over the groups with many arguments. This should only be used in a group_by aggregation.
See the Expr::apply
function for the differences between map
and apply
.
pub fn is_infinite(self) -> Expr
pub fn is_infinite(self) -> Expr
Get mask of infinite values if dtype is Float.
pub fn is_not_nan(self) -> Expr
pub fn is_not_nan(self) -> Expr
Get inverse mask of NaN values if dtype is Float.
pub fn shift(self, n: Expr) -> Expr
pub fn shift(self, n: Expr) -> Expr
Shift the values in the array by some period. See the eager implementation.
pub fn shift_and_fill<E, IE>(self, n: E, fill_value: IE) -> Expr
pub fn shift_and_fill<E, IE>(self, n: E, fill_value: IE) -> Expr
Shift the values in the array by some period and fill the resulting empty values.
pub fn cum_sum(self, reverse: bool) -> Expr
pub fn cum_sum(self, reverse: bool) -> Expr
Get an array with the cumulative sum computed at every element.
pub fn cum_prod(self, reverse: bool) -> Expr
pub fn cum_prod(self, reverse: bool) -> Expr
Get an array with the cumulative product computed at every element.
pub fn cum_min(self, reverse: bool) -> Expr
pub fn cum_min(self, reverse: bool) -> Expr
Get an array with the cumulative min computed at every element.
pub fn cum_max(self, reverse: bool) -> Expr
pub fn cum_max(self, reverse: bool) -> Expr
Get an array with the cumulative max computed at every element.
pub fn round(self, decimals: u32) -> Expr
pub fn round(self, decimals: u32) -> Expr
Round underlying floating point array to given decimal numbers.
pub fn round_sig_figs(self, digits: i32) -> Expr
pub fn round_sig_figs(self, digits: i32) -> Expr
Round to a number of significant figures.
pub fn floor(self) -> Expr
pub fn floor(self) -> Expr
Floor underlying floating point array to the lowest integers smaller or equal to the float value.
pub fn ceil(self) -> Expr
pub fn ceil(self) -> Expr
Ceil underlying floating point array to the highest integers smaller or equal to the float value.
pub fn over<E, IE>(self, partition_by: E) -> Expr
pub fn over<E, IE>(self, partition_by: E) -> Expr
Apply window function over a subgroup. This is similar to a group_by + aggregation + self join. Or similar to window functions in Postgres.
§Example
#[macro_use] extern crate polars_core;
use polars_core::prelude::*;
use polars_lazy::prelude::*;
fn example() -> PolarsResult<()> {
let df = df! {
"groups" => &[1, 1, 2, 2, 1, 2, 3, 3, 1],
"values" => &[1, 2, 3, 4, 5, 6, 7, 8, 8]
}?;
let out = df
.lazy()
.select(&[
col("groups"),
sum("values").over([col("groups")]),
])
.collect()?;
println!("{}", &out);
Ok(())
}
Outputs:
╭────────┬────────╮
│ groups ┆ values │
│ --- ┆ --- │
│ i32 ┆ i32 │
╞════════╪════════╡
│ 1 ┆ 16 │
│ 1 ┆ 16 │
│ 2 ┆ 13 │
│ 2 ┆ 13 │
│ … ┆ … │
│ 1 ┆ 16 │
│ 2 ┆ 13 │
│ 3 ┆ 15 │
│ 3 ┆ 15 │
│ 1 ┆ 16 │
╰────────┴────────╯
pub fn over_with_options<E, IE>( self, partition_by: E, order_by: Option<(E, SortOptions)>, options: WindowMapping, ) -> Expr
pub fn rolling(self, options: RollingGroupOptions) -> Expr
pub fn fill_null_with_strategy(self, strategy: FillNullStrategy) -> Expr
pub fn len(self) -> Expr
pub fn is_between<E>(self, lower: E, upper: E, closed: ClosedInterval) -> Expr
pub fn approx_n_unique(self) -> Expr
pub fn approx_n_unique(self) -> Expr
Get the approximate count of unique values.
pub fn logical_or<E>(self, expr: E) -> Expr
pub fn logical_or<E>(self, expr: E) -> Expr
Logical “or” operation.
pub fn logical_and<E>(self, expr: E) -> Expr
pub fn logical_and<E>(self, expr: E) -> Expr
Logical “and” operation.
pub fn filter<E>(self, predicate: E) -> Expr
pub fn filter<E>(self, predicate: E) -> Expr
Filter a single column.
Should be used in aggregation context. If you want to filter on a
DataFrame level, use LazyFrame::filter
.
pub fn is_in<E>(self, other: E, nulls_equal: bool) -> Expr
pub fn is_in<E>(self, other: E, nulls_equal: bool) -> Expr
Check if the values of the left expression are in the lists of the right expr.
pub fn sort_by<E, IE>(self, by: E, sort_options: SortMultipleOptions) -> Expr
pub fn sort_by<E, IE>(self, by: E, sort_options: SortMultipleOptions) -> Expr
Sort this column by the ordering of another column evaluated from given expr. Can also be used in a group_by context to sort the groups.
§Example
let lf = df! {
"a" => [1, 2, 3, 4, 5],
"b" => [5, 4, 3, 2, 1]
}?.lazy();
let sorted = lf
.select(
vec![col("a").sort_by(col("b"), SortOptions::default())],
)
.collect()?;
assert_eq!(
sorted,
df! { "a" => [5, 4, 3, 2, 1] }?
);
pub fn repeat_by<E>(self, by: E) -> Expr
pub fn repeat_by<E>(self, by: E) -> Expr
Repeat the column n
times, where n
is determined by the values in by
.
This yields an Expr
of dtype List
.
pub fn is_first_distinct(self) -> Expr
pub fn is_first_distinct(self) -> Expr
Get a mask of the first unique value.
pub fn is_last_distinct(self) -> Expr
pub fn is_last_distinct(self) -> Expr
Get a mask of the last unique value.
pub fn exclude(self, columns: impl IntoVec<PlSmallStr>) -> Expr
pub fn exclude(self, columns: impl IntoVec<PlSmallStr>) -> Expr
Exclude a column from a wildcard/regex selection.
You may also use regexes in the exclude as long as they start with ^
and end with $
.
pub fn exclude_dtype<D>(self, dtypes: D) -> Expr
pub fn interpolate(self, method: InterpolationMethod) -> Expr
pub fn interpolate(self, method: InterpolationMethod) -> Expr
Interpolate intermediate values. Nulls at the beginning and end of the series remain null.
pub fn interpolate_by(self, by: Expr) -> Expr
pub fn interpolate_by(self, by: Expr) -> Expr
Interpolate intermediate values.
Nulls at the beginning and end of the series remain null.
The by
column provides the x-coordinates for interpolation and must not contain nulls.
pub fn rolling_min_by(
self,
by: Expr,
options: RollingOptionsDynamicWindow,
) -> Expr
pub fn rolling_min_by( self, by: Expr, options: RollingOptionsDynamicWindow, ) -> Expr
Apply a rolling minimum based on another column.
pub fn rolling_max_by(
self,
by: Expr,
options: RollingOptionsDynamicWindow,
) -> Expr
pub fn rolling_max_by( self, by: Expr, options: RollingOptionsDynamicWindow, ) -> Expr
Apply a rolling maximum based on another column.
pub fn rolling_mean_by(
self,
by: Expr,
options: RollingOptionsDynamicWindow,
) -> Expr
pub fn rolling_mean_by( self, by: Expr, options: RollingOptionsDynamicWindow, ) -> Expr
Apply a rolling mean based on another column.
pub fn rolling_sum_by(
self,
by: Expr,
options: RollingOptionsDynamicWindow,
) -> Expr
pub fn rolling_sum_by( self, by: Expr, options: RollingOptionsDynamicWindow, ) -> Expr
Apply a rolling sum based on another column.
pub fn rolling_quantile_by(
self,
by: Expr,
method: QuantileMethod,
quantile: f64,
options: RollingOptionsDynamicWindow,
) -> Expr
pub fn rolling_quantile_by( self, by: Expr, method: QuantileMethod, quantile: f64, options: RollingOptionsDynamicWindow, ) -> Expr
Apply a rolling quantile based on another column.
pub fn rolling_var_by(
self,
by: Expr,
options: RollingOptionsDynamicWindow,
) -> Expr
pub fn rolling_var_by( self, by: Expr, options: RollingOptionsDynamicWindow, ) -> Expr
Apply a rolling variance based on another column.
pub fn rolling_std_by(
self,
by: Expr,
options: RollingOptionsDynamicWindow,
) -> Expr
pub fn rolling_std_by( self, by: Expr, options: RollingOptionsDynamicWindow, ) -> Expr
Apply a rolling std-dev based on another column.
pub fn rolling_median_by(
self,
by: Expr,
options: RollingOptionsDynamicWindow,
) -> Expr
pub fn rolling_median_by( self, by: Expr, options: RollingOptionsDynamicWindow, ) -> Expr
Apply a rolling median based on another column.
pub fn rolling_min(self, options: RollingOptionsFixedWindow) -> Expr
pub fn rolling_min(self, options: RollingOptionsFixedWindow) -> Expr
Apply a rolling minimum.
See: [RollingAgg::rolling_min
]
pub fn rolling_max(self, options: RollingOptionsFixedWindow) -> Expr
pub fn rolling_max(self, options: RollingOptionsFixedWindow) -> Expr
Apply a rolling maximum.
See: [RollingAgg::rolling_max
]
pub fn rolling_mean(self, options: RollingOptionsFixedWindow) -> Expr
pub fn rolling_mean(self, options: RollingOptionsFixedWindow) -> Expr
Apply a rolling mean.
See: [RollingAgg::rolling_mean
]
pub fn rolling_sum(self, options: RollingOptionsFixedWindow) -> Expr
pub fn rolling_sum(self, options: RollingOptionsFixedWindow) -> Expr
Apply a rolling sum.
See: [RollingAgg::rolling_sum
]
pub fn rolling_median(self, options: RollingOptionsFixedWindow) -> Expr
pub fn rolling_median(self, options: RollingOptionsFixedWindow) -> Expr
Apply a rolling median.
See: [RollingAgg::rolling_median
]
pub fn rolling_quantile(
self,
method: QuantileMethod,
quantile: f64,
options: RollingOptionsFixedWindow,
) -> Expr
pub fn rolling_quantile( self, method: QuantileMethod, quantile: f64, options: RollingOptionsFixedWindow, ) -> Expr
Apply a rolling quantile.
See: [RollingAgg::rolling_quantile
]
pub fn rolling_var(self, options: RollingOptionsFixedWindow) -> Expr
pub fn rolling_var(self, options: RollingOptionsFixedWindow) -> Expr
Apply a rolling variance.
pub fn rolling_std(self, options: RollingOptionsFixedWindow) -> Expr
pub fn rolling_std(self, options: RollingOptionsFixedWindow) -> Expr
Apply a rolling std-dev.
pub fn rolling_map(
self,
f: Arc<dyn Fn(&Series) -> Series + Sync + Send>,
output_type: SpecialEq<Arc<dyn FunctionOutputField>>,
options: RollingOptionsFixedWindow,
) -> Expr
pub fn rolling_map( self, f: Arc<dyn Fn(&Series) -> Series + Sync + Send>, output_type: SpecialEq<Arc<dyn FunctionOutputField>>, options: RollingOptionsFixedWindow, ) -> Expr
Apply a custom function over a rolling/ moving window of the array. This has quite some dynamic dispatch, so prefer rolling_min, max, mean, sum over this.
pub fn rolling_map_float<F>(self, window_size: usize, f: F) -> Expr
pub fn rolling_map_float<F>(self, window_size: usize, f: F) -> Expr
Apply a custom function over a rolling/ moving window of the array. Prefer this over rolling_apply in case of floating point numbers as this is faster. This has quite some dynamic dispatch, so prefer rolling_min, max, mean, sum over this.
pub fn rank(self, options: RankOptions, seed: Option<u64>) -> Expr
pub fn rank(self, options: RankOptions, seed: Option<u64>) -> Expr
Assign ranks to data, dealing with ties appropriately.
pub fn replace_strict<E>(
self,
old: E,
new: E,
default: Option<E>,
return_dtype: Option<DataType>,
) -> Expr
pub fn replace_strict<E>( self, old: E, new: E, default: Option<E>, return_dtype: Option<DataType>, ) -> Expr
Replace the given values with other values.
pub fn diff(self, n: Expr, null_behavior: NullBehavior) -> Expr
pub fn diff(self, n: Expr, null_behavior: NullBehavior) -> Expr
Calculate the n-th discrete difference between values.
pub fn upper_bound(self) -> Expr
pub fn upper_bound(self) -> Expr
Get maximal value that could be hold by this dtype.
pub fn lower_bound(self) -> Expr
pub fn lower_bound(self) -> Expr
Get minimal value that could be hold by this dtype.
pub fn reshape(self, dimensions: &[i64]) -> Expr
pub fn any(self, ignore_nulls: bool) -> Expr
pub fn any(self, ignore_nulls: bool) -> Expr
Returns whether any of the values in the column are true
.
If ignore_nulls
is False
, Kleene logic is used to deal with nulls:
if the column contains any null values and no true
values, the output
is null.
pub fn all(self, ignore_nulls: bool) -> Expr
pub fn all(self, ignore_nulls: bool) -> Expr
Returns whether all values in the column are true
.
If ignore_nulls
is False
, Kleene logic is used to deal with nulls:
if the column contains any null values and no false
values, the output
is null.
pub fn shrink_dtype(self) -> Expr
pub fn shrink_dtype(self) -> Expr
Shrink numeric columns to the minimal required datatype
needed to fit the extrema of this Series
.
This can be used to reduce memory pressure.
pub fn value_counts(
self,
sort: bool,
parallel: bool,
name: &str,
normalize: bool,
) -> Expr
pub fn value_counts( self, sort: bool, parallel: bool, name: &str, normalize: bool, ) -> Expr
Count all unique values and create a struct mapping value to count.
(Note that it is better to turn parallel off in the aggregation context).
The name of the struct field with the counts is given by the parameter name
.
pub fn unique_counts(self) -> Expr
pub fn unique_counts(self) -> Expr
Returns a count of the unique values in the order of appearance.
This method differs from Expr::value_counts
in that it does not return the
values, only the counts and might be faster.
pub fn null_count(self) -> Expr
pub fn null_count(self) -> Expr
Get the null count of the column/group.
pub fn set_sorted_flag(self, sorted: IsSorted) -> Expr
pub fn set_sorted_flag(self, sorted: IsSorted) -> Expr
Set this Series
as sorted
so that downstream code can use
fast paths for sorted arrays.
§Warning
This can lead to incorrect results if this Series
is not sorted!!
Use with care!
pub fn to_physical(self) -> Expr
pub fn gather_every(self, n: usize, offset: usize) -> Expr
pub fn extend_constant(self, value: Expr, n: Expr) -> Expr
pub fn str(self) -> StringNameSpace
pub fn str(self) -> StringNameSpace
Get the [string::StringNameSpace
]
pub fn binary(self) -> BinaryNameSpace
pub fn binary(self) -> BinaryNameSpace
Get the binary::BinaryNameSpace
pub fn dt(self) -> DateLikeNameSpace
pub fn dt(self) -> DateLikeNameSpace
Get the dt::DateLikeNameSpace
pub fn list(self) -> ListNameSpace
pub fn list(self) -> ListNameSpace
Get the list::ListNameSpace
pub fn name(self) -> ExprNameNameSpace
pub fn name(self) -> ExprNameNameSpace
Get the name::ExprNameNameSpace
pub fn arr(self) -> ArrayNameSpace
pub fn arr(self) -> ArrayNameSpace
Get the array::ArrayNameSpace
.
pub fn cat(self) -> CategoricalNameSpace
pub fn cat(self) -> CategoricalNameSpace
Get the CategoricalNameSpace
.
pub fn struct_(self) -> StructNameSpace
pub fn struct_(self) -> StructNameSpace
Get the struct_::StructNameSpace
.
§impl Expr
impl Expr
pub fn nodes<'a>(&'a self, container: &mut UnitVec<&'a Expr>)
pub fn nodes_owned(self, container: &mut UnitVec<Expr>)
pub fn map_expr<F>(self, f: F) -> Expr
pub fn try_map_expr<F>(self, f: F) -> Result<Expr, PolarsError>
Trait Implementations§
§impl<'de> Deserialize<'de> for Expr
impl<'de> Deserialize<'de> for Expr
§fn deserialize<__D>(
__deserializer: __D,
) -> Result<Expr, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<Expr, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl ExprEvalExtension for Expr
impl ExprEvalExtension for Expr
§impl<'a> IntoIterator for &'a Expr
impl<'a> IntoIterator for &'a Expr
§impl Serialize for Expr
impl Serialize for Expr
§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
§impl TreeWalker for Expr
impl TreeWalker for Expr
type Arena = ()
fn apply_children<F>( &self, op: &mut F, arena: &<Expr as TreeWalker>::Arena, ) -> Result<VisitRecursion, PolarsError>
fn map_children<F>( self, f: &mut F, _arena: &mut <Expr as TreeWalker>::Arena, ) -> Result<Expr, PolarsError>
§fn visit<V>(
&self,
visitor: &mut V,
arena: &Self::Arena,
) -> Result<VisitRecursion, PolarsError>where
V: Visitor<Node = Self, Arena = Self::Arena>,
fn visit<V>(
&self,
visitor: &mut V,
arena: &Self::Arena,
) -> Result<VisitRecursion, PolarsError>where
V: Visitor<Node = Self, Arena = Self::Arena>,
fn rewrite<R>(
self,
rewriter: &mut R,
arena: &mut Self::Arena,
) -> Result<Self, PolarsError>where
R: RewritingVisitor<Node = Self, Arena = Self::Arena>,
impl Eq for Expr
impl StructuralPartialEq for Expr
Auto Trait Implementations§
impl !Freeze for Expr
impl !RefUnwindSafe for Expr
impl Send for Expr
impl Sync for Expr
impl Unpin for Expr
impl !UnwindSafe for Expr
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> ToCompactString for Twhere
T: Display,
impl<T> ToCompactString for Twhere
T: Display,
§fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
ToCompactString::to_compact_string()
] Read more§fn to_compact_string(&self) -> CompactString
fn to_compact_string(&self) -> CompactString
CompactString
]. Read more