Trait polars::prelude::PartitionedAggregation
source · [−]pub trait PartitionedAggregation: Send + Sync + PhysicalExpr {
fn evaluate_partitioned(
&self,
df: &DataFrame,
groups: &GroupsProxy,
state: &ExecutionState
) -> Result<Series, PolarsError>;
fn finalize(
&self,
partitioned: Series,
groups: &GroupsProxy,
state: &ExecutionState
) -> Result<Series, PolarsError>;
}
Required Methods
fn evaluate_partitioned(
&self,
df: &DataFrame,
groups: &GroupsProxy,
state: &ExecutionState
) -> Result<Series, PolarsError>
fn evaluate_partitioned(
&self,
df: &DataFrame,
groups: &GroupsProxy,
state: &ExecutionState
) -> Result<Series, PolarsError>
This is called in partitioned aggregation.
Partitioned results may differ from aggregation results.
For instance, for a mean
operation a partitioned result
needs to return the sum
and the valid_count
(length - null count).
A final aggregation can then take the sum of sums and sum of valid_counts to produce a final mean.
fn finalize(
&self,
partitioned: Series,
groups: &GroupsProxy,
state: &ExecutionState
) -> Result<Series, PolarsError>
fn finalize(
&self,
partitioned: Series,
groups: &GroupsProxy,
state: &ExecutionState
) -> Result<Series, PolarsError>
Called to merge all the partitioned results in a final aggregate.