From abf699f38caf93dcba6c8632adc3db4f5ade9366 Mon Sep 17 00:00:00 2001 From: Palash Tyagi <23239946+Magnus167@users.noreply.github.com> Date: Thu, 14 Nov 2024 01:21:20 +0000 Subject: [PATCH] feat: add utils/dftools, is_quantamental_dataframe function to validate DataFrame structure --- src/utils/dftools.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 src/utils/dftools.rs diff --git a/src/utils/dftools.rs b/src/utils/dftools.rs new file mode 100644 index 0000000..95355f4 --- /dev/null +++ b/src/utils/dftools.rs @@ -0,0 +1,18 @@ +use polars::prelude::*; + +const QDF_IDX_COLUMNS: [&str; 3] = ["real_date", "cid", "xcat"]; + +/// Check if a DataFrame is a quantamental DataFrame. +fn is_quantamental_dataframe(df: &DataFrame) -> bool { + let columns = df + .get_column_names() + .iter() + .map(|s| s.as_str()) + .collect::>(); + let has_idx_columns = QDF_IDX_COLUMNS.iter().all(|col| columns.contains(col)); + + // check if real_date is date-type + let real_date = df.column("real_date").unwrap(); + + has_idx_columns +}