use polars::prelude::{Column, DataFrame};
pub fn find_column<'a>(df: &'a DataFrame, names: &[&str]) -> Result<&'a Column, String> {
for name in names {
if let Ok(col) = df.column(name) {
return Ok(col);
}
}
let col_names = df.get_column_names();
for name in names {
let lower = name.to_lowercase();
for cn in &col_names {
if cn.to_lowercase() == lower {
return df.column(cn).map_err(|e| e.to_string());
}
}
}
Err(format!("Missing column (tried: {:?})", names))
}