From 204591426625215255c1ddcf14fd66ed1a9b939e Mon Sep 17 00:00:00 2001 From: Evgenii Kuznetcov Date: Mon, 18 Nov 2024 12:53:04 +0100 Subject: [PATCH] Return None/Null instead of 0 for empty input --- Cargo.lock | 2 +- Cargo.toml | 2 +- src/expressions.rs | 9 +++++++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 874871f..ae96916 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -947,7 +947,7 @@ dependencies = [ [[package]] name = "polars-tdigest" -version = "0.1.4" +version = "0.1.5" dependencies = [ "jemallocator", "ordered-float 4.2.0", diff --git a/Cargo.toml b/Cargo.toml index cbf83c0..a43f43d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "polars-tdigest" -version = "0.1.4" +version = "0.1.5" edition = "2021" [lib] diff --git a/src/expressions.rs b/src/expressions.rs index a405f9c..a7d2bf3 100644 --- a/src/expressions.rs +++ b/src/expressions.rs @@ -264,6 +264,11 @@ fn estimate_quantile(inputs: &[Series], kwargs: MergeTDKwargs) -> PolarsResult = tdigest_json.into_iter().map(|td| td.tdigest).collect(); let tdigest = TDigest::merge_digests(tdigests); - let ans = tdigest.estimate_quantile(kwargs.quantile); - Ok(Series::new("", vec![ans])) + if tdigest.is_empty() { + let v: &[Option] = &[None]; + Ok(Series::new("", v)) + } else { + let ans = tdigest.estimate_quantile(kwargs.quantile); + Ok(Series::new("", vec![ans])) + } }