pub struct DataFrame { /* private fields */ }Expand description
A DataFrame represents a collection of named Series (columns)
Implementations§
Source§impl DataFrame
impl DataFrame
Sourcepub fn from_series(columns: HashMap<String, Series>) -> Result<DataFrame, Error>
pub fn from_series(columns: HashMap<String, Series>) -> Result<DataFrame, Error>
Create a DataFrame from a map of column names to Series
Examples found in repository?
examples/simple.rs (line 21)
12fn main() {
13 println!("=== StatOxide Simple Example ===\n");
14
15 // 1. Create a DataFrame
16 println!("1. Creating DataFrame:");
17 let mut columns = HashMap::new();
18 columns.insert("x".to_string(), Series::new("x", Array1::from_vec(vec![1.0, 2.0, 3.0, 4.0, 5.0])));
19 columns.insert("y".to_string(), Series::new("y", Array1::from_vec(vec![2.0, 4.0, 5.0, 4.0, 5.0])));
20
21 let df = DataFrame::from_series(columns).unwrap();
22
23 println!(" DataFrame shape: {} rows × {} columns", df.n_rows(), df.n_cols());
24 println!(" Column names: {:?}\n", df.column_names());
25
26 // 2. Parse a formula
27 println!("2. Parsing formula:");
28 let formula = Formula::parse("y ~ x").unwrap();
29 println!(" Formula parsed successfully, variables: {:?}\n", formula.variables());
30
31 // 3. Compute statistics
32 println!("3. Computing statistics:");
33 let x_view = df.column("x").unwrap().data();
34 let y_view = df.column("y").unwrap().data();
35
36 // Convert views to owned arrays
37 let x_data = x_view.to_owned();
38 let y_data = y_view.to_owned();
39
40 let x_mean = mean(&x_data).unwrap();
41 let x_std = std(&x_data, 1.0).unwrap();
42 let corr = correlation(&x_data, &y_data).unwrap();
43
44 println!(" Mean of x: {:.4}", x_mean);
45 println!(" Std of x: {:.4}", x_std);
46 println!(" Correlation(x, y): {:.4}\n", corr);
47
48 // 4. Demonstrate module structure
49 println!("4. Module structure available:");
50 println!(" - statoxide::models::* (GLM, linear regression, mixed effects)");
51 println!(" - statoxide::stats::* (statistical functions and tests)");
52 println!(" - statoxide::tsa::* (time series analysis)");
53 println!(" - statoxide::linalg::* (linear algebra)");
54 println!(" - statoxide::utils::* (utilities)\n");
55
56 println!("=== StatOxide version {} ===", statoxide::version());
57}Sourcepub fn n_rows(&self) -> usize
pub fn n_rows(&self) -> usize
Get number of rows
Examples found in repository?
examples/simple.rs (line 23)
12fn main() {
13 println!("=== StatOxide Simple Example ===\n");
14
15 // 1. Create a DataFrame
16 println!("1. Creating DataFrame:");
17 let mut columns = HashMap::new();
18 columns.insert("x".to_string(), Series::new("x", Array1::from_vec(vec![1.0, 2.0, 3.0, 4.0, 5.0])));
19 columns.insert("y".to_string(), Series::new("y", Array1::from_vec(vec![2.0, 4.0, 5.0, 4.0, 5.0])));
20
21 let df = DataFrame::from_series(columns).unwrap();
22
23 println!(" DataFrame shape: {} rows × {} columns", df.n_rows(), df.n_cols());
24 println!(" Column names: {:?}\n", df.column_names());
25
26 // 2. Parse a formula
27 println!("2. Parsing formula:");
28 let formula = Formula::parse("y ~ x").unwrap();
29 println!(" Formula parsed successfully, variables: {:?}\n", formula.variables());
30
31 // 3. Compute statistics
32 println!("3. Computing statistics:");
33 let x_view = df.column("x").unwrap().data();
34 let y_view = df.column("y").unwrap().data();
35
36 // Convert views to owned arrays
37 let x_data = x_view.to_owned();
38 let y_data = y_view.to_owned();
39
40 let x_mean = mean(&x_data).unwrap();
41 let x_std = std(&x_data, 1.0).unwrap();
42 let corr = correlation(&x_data, &y_data).unwrap();
43
44 println!(" Mean of x: {:.4}", x_mean);
45 println!(" Std of x: {:.4}", x_std);
46 println!(" Correlation(x, y): {:.4}\n", corr);
47
48 // 4. Demonstrate module structure
49 println!("4. Module structure available:");
50 println!(" - statoxide::models::* (GLM, linear regression, mixed effects)");
51 println!(" - statoxide::stats::* (statistical functions and tests)");
52 println!(" - statoxide::tsa::* (time series analysis)");
53 println!(" - statoxide::linalg::* (linear algebra)");
54 println!(" - statoxide::utils::* (utilities)\n");
55
56 println!("=== StatOxide version {} ===", statoxide::version());
57}Sourcepub fn n_cols(&self) -> usize
pub fn n_cols(&self) -> usize
Get number of columns
Examples found in repository?
examples/simple.rs (line 23)
12fn main() {
13 println!("=== StatOxide Simple Example ===\n");
14
15 // 1. Create a DataFrame
16 println!("1. Creating DataFrame:");
17 let mut columns = HashMap::new();
18 columns.insert("x".to_string(), Series::new("x", Array1::from_vec(vec![1.0, 2.0, 3.0, 4.0, 5.0])));
19 columns.insert("y".to_string(), Series::new("y", Array1::from_vec(vec![2.0, 4.0, 5.0, 4.0, 5.0])));
20
21 let df = DataFrame::from_series(columns).unwrap();
22
23 println!(" DataFrame shape: {} rows × {} columns", df.n_rows(), df.n_cols());
24 println!(" Column names: {:?}\n", df.column_names());
25
26 // 2. Parse a formula
27 println!("2. Parsing formula:");
28 let formula = Formula::parse("y ~ x").unwrap();
29 println!(" Formula parsed successfully, variables: {:?}\n", formula.variables());
30
31 // 3. Compute statistics
32 println!("3. Computing statistics:");
33 let x_view = df.column("x").unwrap().data();
34 let y_view = df.column("y").unwrap().data();
35
36 // Convert views to owned arrays
37 let x_data = x_view.to_owned();
38 let y_data = y_view.to_owned();
39
40 let x_mean = mean(&x_data).unwrap();
41 let x_std = std(&x_data, 1.0).unwrap();
42 let corr = correlation(&x_data, &y_data).unwrap();
43
44 println!(" Mean of x: {:.4}", x_mean);
45 println!(" Std of x: {:.4}", x_std);
46 println!(" Correlation(x, y): {:.4}\n", corr);
47
48 // 4. Demonstrate module structure
49 println!("4. Module structure available:");
50 println!(" - statoxide::models::* (GLM, linear regression, mixed effects)");
51 println!(" - statoxide::stats::* (statistical functions and tests)");
52 println!(" - statoxide::tsa::* (time series analysis)");
53 println!(" - statoxide::linalg::* (linear algebra)");
54 println!(" - statoxide::utils::* (utilities)\n");
55
56 println!("=== StatOxide version {} ===", statoxide::version());
57}Sourcepub fn column_names(&self) -> Vec<String>
pub fn column_names(&self) -> Vec<String>
Get column names
Examples found in repository?
examples/simple.rs (line 24)
12fn main() {
13 println!("=== StatOxide Simple Example ===\n");
14
15 // 1. Create a DataFrame
16 println!("1. Creating DataFrame:");
17 let mut columns = HashMap::new();
18 columns.insert("x".to_string(), Series::new("x", Array1::from_vec(vec![1.0, 2.0, 3.0, 4.0, 5.0])));
19 columns.insert("y".to_string(), Series::new("y", Array1::from_vec(vec![2.0, 4.0, 5.0, 4.0, 5.0])));
20
21 let df = DataFrame::from_series(columns).unwrap();
22
23 println!(" DataFrame shape: {} rows × {} columns", df.n_rows(), df.n_cols());
24 println!(" Column names: {:?}\n", df.column_names());
25
26 // 2. Parse a formula
27 println!("2. Parsing formula:");
28 let formula = Formula::parse("y ~ x").unwrap();
29 println!(" Formula parsed successfully, variables: {:?}\n", formula.variables());
30
31 // 3. Compute statistics
32 println!("3. Computing statistics:");
33 let x_view = df.column("x").unwrap().data();
34 let y_view = df.column("y").unwrap().data();
35
36 // Convert views to owned arrays
37 let x_data = x_view.to_owned();
38 let y_data = y_view.to_owned();
39
40 let x_mean = mean(&x_data).unwrap();
41 let x_std = std(&x_data, 1.0).unwrap();
42 let corr = correlation(&x_data, &y_data).unwrap();
43
44 println!(" Mean of x: {:.4}", x_mean);
45 println!(" Std of x: {:.4}", x_std);
46 println!(" Correlation(x, y): {:.4}\n", corr);
47
48 // 4. Demonstrate module structure
49 println!("4. Module structure available:");
50 println!(" - statoxide::models::* (GLM, linear regression, mixed effects)");
51 println!(" - statoxide::stats::* (statistical functions and tests)");
52 println!(" - statoxide::tsa::* (time series analysis)");
53 println!(" - statoxide::linalg::* (linear algebra)");
54 println!(" - statoxide::utils::* (utilities)\n");
55
56 println!("=== StatOxide version {} ===", statoxide::version());
57}Sourcepub fn column(&self, name: &str) -> Option<&Series>
pub fn column(&self, name: &str) -> Option<&Series>
Get a column by name
Examples found in repository?
examples/simple.rs (line 33)
12fn main() {
13 println!("=== StatOxide Simple Example ===\n");
14
15 // 1. Create a DataFrame
16 println!("1. Creating DataFrame:");
17 let mut columns = HashMap::new();
18 columns.insert("x".to_string(), Series::new("x", Array1::from_vec(vec![1.0, 2.0, 3.0, 4.0, 5.0])));
19 columns.insert("y".to_string(), Series::new("y", Array1::from_vec(vec![2.0, 4.0, 5.0, 4.0, 5.0])));
20
21 let df = DataFrame::from_series(columns).unwrap();
22
23 println!(" DataFrame shape: {} rows × {} columns", df.n_rows(), df.n_cols());
24 println!(" Column names: {:?}\n", df.column_names());
25
26 // 2. Parse a formula
27 println!("2. Parsing formula:");
28 let formula = Formula::parse("y ~ x").unwrap();
29 println!(" Formula parsed successfully, variables: {:?}\n", formula.variables());
30
31 // 3. Compute statistics
32 println!("3. Computing statistics:");
33 let x_view = df.column("x").unwrap().data();
34 let y_view = df.column("y").unwrap().data();
35
36 // Convert views to owned arrays
37 let x_data = x_view.to_owned();
38 let y_data = y_view.to_owned();
39
40 let x_mean = mean(&x_data).unwrap();
41 let x_std = std(&x_data, 1.0).unwrap();
42 let corr = correlation(&x_data, &y_data).unwrap();
43
44 println!(" Mean of x: {:.4}", x_mean);
45 println!(" Std of x: {:.4}", x_std);
46 println!(" Correlation(x, y): {:.4}\n", corr);
47
48 // 4. Demonstrate module structure
49 println!("4. Module structure available:");
50 println!(" - statoxide::models::* (GLM, linear regression, mixed effects)");
51 println!(" - statoxide::stats::* (statistical functions and tests)");
52 println!(" - statoxide::tsa::* (time series analysis)");
53 println!(" - statoxide::linalg::* (linear algebra)");
54 println!(" - statoxide::utils::* (utilities)\n");
55
56 println!("=== StatOxide version {} ===", statoxide::version());
57}Sourcepub fn column_mut(&mut self, name: &str) -> Option<&mut Series>
pub fn column_mut(&mut self, name: &str) -> Option<&mut Series>
Get a mutable reference to a column
Sourcepub fn with_column(self, series: Series) -> Result<DataFrame, Error>
pub fn with_column(self, series: Series) -> Result<DataFrame, Error>
Add a column to the DataFrame
Sourcepub fn drop_column(self, name: &str) -> DataFrame
pub fn drop_column(self, name: &str) -> DataFrame
Remove a column
Trait Implementations§
Source§impl<'de> Deserialize<'de> for DataFrame
impl<'de> Deserialize<'de> for DataFrame
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<DataFrame, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<DataFrame, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Serialize for DataFrame
impl Serialize for DataFrame
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
Auto Trait Implementations§
impl Freeze for DataFrame
impl RefUnwindSafe for DataFrame
impl Send for DataFrame
impl Sync for DataFrame
impl Unpin for DataFrame
impl UnsafeUnpin for DataFrame
impl UnwindSafe for DataFrame
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T> DistributionExt for Twhere
T: ?Sized,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.