pub fn read_csv_typed<P: AsRef<Path>>(
path: P,
config: Option<CsvReaderConfig>,
col_types: Option<&[ColumnType]>,
missing_values: Option<MissingValueOptions>,
) -> Result<(Vec<String>, Vec<Vec<DataValue>>)>
Expand description
Read a CSV file with type conversion and missing value handling
§Arguments
path
- Path to the CSV fileconfig
- Optional CSV reader configurationcol_types
- Optional column data typesmissing_values
- Optional missing value handling options
§Returns
Result<(Vec<String>, Vec<Vec<DataValue>>)>
- Headers and typed data values
§Examples
use scirs2_io::csv::{read_csv_typed, ColumnType, CsvReaderConfig, MissingValueOptions};
// Read with automatic type detection
let (headers, data) = read_csv_typed("data.csv", None, None, None).unwrap();
// Read with specified column types
let col_types = vec![
ColumnType::String,
ColumnType::Integer,
ColumnType::Float,
ColumnType::Boolean,
];
let (headers, data) = read_csv_typed("data.csv", None, Some(&col_types), None).unwrap();
// Read with custom missing value handling
let missing_opts = MissingValueOptions {
values: vec!["missing".to_string(), "unknown".to_string()],
fill_value: Some(0.0),
};
let (headers, data) = read_csv_typed("data.csv", None, None, Some(missing_opts)).unwrap();