xdl_dataframe/
lib.rs

1//! XDL DataFrame Module
2//!
3//! Provides pandas/Spark-style data manipulation capabilities for XDL with support for:
4//! - CSV and TSV files
5//! - Parquet files
6//! - Avro files
7//! - Database query results
8//!
9//! # Features
10//!
11//! - **DataFrame Operations**: filter, select, groupby, sort, join
12//! - **Data I/O**: Read from multiple formats, write to CSV/TSV
13//! - **Statistics**: describe, sum, mean, count, value_counts
14//! - **Integration**: Works seamlessly with XDL arrays, ML functions, charts, and 3D graphics
15//!
16//! # Example
17//!
18//! ```xdl
19//! ; Read CSV data
20//! df = XDLDataFrame_ReadCSV('data.csv')
21//!
22//! ; Select columns
23//! df_subset = df->Select(['name', 'age', 'city'])
24//!
25//! ; Filter rows
26//! df_filtered = df->Filter(AGE='>30')
27//!
28//! ; Group and aggregate
29//! df_grouped = df->GroupBy(['city'])->Mean()
30//!
31//! ; Statistical summary
32//! stats = df->Describe()
33//!
34//! ; Export to different format
35//! df->WriteTSV, 'output.tsv'
36//! ```
37
38#[cfg(feature = "database-integration")]
39pub mod database;
40pub mod dataframe;
41pub mod error;
42pub mod readers;
43pub mod series;
44
45pub use dataframe::{DataFrame, GroupBy};
46pub use error::{DataFrameError, DataFrameResult};
47pub use readers::{read_csv, read_csv_string, write_csv, CsvReaderOptions};
48pub use series::Series;
49
50#[cfg(feature = "parquet-support")]
51pub use readers::read_parquet;
52
53#[cfg(feature = "avro-support")]
54pub use readers::read_avro;
55
56#[cfg(feature = "database-integration")]
57pub use database::from_recordset;
58
59/// Module version
60pub const VERSION: &str = env!("CARGO_PKG_VERSION");