Skip to main content

DataFrame

Struct DataFrame 

Source
pub struct DataFrame<T>
where T: UtahNum,
{ pub columns: Vec<String>, pub data: Matrix<T>, pub index: Vec<String>, }
Expand description

A read-only dataframe.

Fields§

§columns: Vec<String>§data: Matrix<T>§index: Vec<String>

Trait Implementations§

Source§

impl<T> Clone for DataFrame<T>
where T: UtahNum + Clone,

Source§

fn clone(&self) -> DataFrame<T>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'a, T> Constructor<'a, T> for DataFrame<T>
where T: UtahNum + 'a,

Source§

fn new<U: Clone>(data: Matrix<U>) -> DataFrame<T>
where T: From<U>,

Create a new dataframe. The only required argument is data to populate the dataframe. By default, the columns and index of the dataframe are ["1", "2", "3"..."N"], where N is the number of columns (or rows) in the data.

use utah::prelude::*;
let a = arr2(&[[2.0, 7.0], [3.0, 4.0]]);
let df : DataFrame<f64> = DataFrame::new(a);

When populating the dataframe with mixed-types, wrap the elements with InnerType enum:

use utah::prelude::*;
let a = arr2(&[[InnerType::Float(2.0), InnerType::Str("ak".into())],
               [InnerType::Int32(6), InnerType::Int64(10)]]);
let df : DataFrame<InnerType> = DataFrame::new(a);
Source§

fn from_array<U: Clone>(data: Row<U>, axis: UtahAxis) -> DataFrame<T>
where T: From<U>,

Generate a 1-dimensional DataFrame from an 1-D array of data. When populating the dataframe with mixed-types, wrap the elements with InnerType enum.

use utah::prelude::*;
let a = arr1(&[2.0, 7.0]);
let df : DataFrame<f64> = DataFrame::from_array(a, UtahAxis::Column);
Source§

fn columns<U: Clone>(self, columns: &'a [U]) -> Result<DataFrame<T>>
where String: From<U>,

Populate the dataframe with a set of columns. The column elements can be any of OuterType. Example:

use utah::prelude::*;
let a = arr2(&[[2.0, 7.0], [3.0, 4.0]]);
let df : Result<DataFrame<f64>> = DataFrame::new(a).columns(&["a", "b"]);
df.is_ok();
Source§

fn index<U: Clone>(self, index: &'a [U]) -> Result<DataFrame<T>>
where String: From<U>,

Populate the dataframe with an index. The index elements can be any of OuterType. Example:

use utah::prelude::*;
let a = arr2(&[[2.0, 7.0], [3.0, 4.0]]);
let df : Result<DataFrame<f64>> = DataFrame::new(a).index(&["1", "2"]);
df.is_ok();

You can also populate the dataframe with both column names and index names, like so:

use utah::prelude::*;
let a = arr2(&[[2.0, 7.0], [3.0, 4.0]]);
let df : Result<DataFrame<f64>> = DataFrame::new(a).index(&["1", "2"]).unwrap().columns(&["a", "b"]);
df.is_ok();
Source§

fn df_iter(&'a self, axis: UtahAxis) -> DataFrameIterator<'a, T>

Return a dataframe iterator over the specified UtahAxis.

The dataframe iterator yields a view of a row or column of the dataframe for eventual processing. Example:

use utah::prelude::*;
let a = arr2(&[[2.0, 7.0], [3.0, 4.0]]);
let df : DataFrame<f64> = DataFrame::new(a).index(&["1", "2"]).unwrap().columns(&["a", "b"]).unwrap();
let df_iter = df.df_iter(UtahAxis::Row);
Source§

fn df_iter_mut(&'a mut self, axis: UtahAxis) -> DataFrameMutIterator<'a, T>

Return a mutable dataframe iterator over the specified UtahAxis.

The mutable dataframe iterator yields a view of a row or column of the dataframe for eventual processing. Example:

use utah::prelude::*;
let a = arr2(&[[2.0, 7.0], [3.0, 4.0]]);
let mut df : DataFrame<f64> = DataFrame::new(a);
let df_iter_mut = df.df_iter_mut(UtahAxis::Column);
Source§

impl<T> Debug for DataFrame<T>
where T: UtahNum + Debug,

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'a, T> Operations<'a, T> for DataFrame<T>
where T: 'a + UtahNum,

Available on non-crate feature specialization only.
Source§

fn shape(self) -> (usize, usize)

Get the dimensions of the dataframe.

Source§

fn select<U: ?Sized>( &'a self, names: &'a [&'a U], axis: UtahAxis, ) -> SelectIter<'a, T>
where String: From<&'a U>,

Select rows or columns over the specified UtahAxis.

Source§

fn remove<U: ?Sized>( &'a self, names: &'a [&'a U], axis: UtahAxis, ) -> RemoveIter<'a, T>
where String: From<&'a U>,

Remove rows or columns over the specified UtahAxis.

Source§

fn append<U: ?Sized>( &'a mut self, name: &'a U, data: ArrayView1<'a, T>, axis: UtahAxis, ) -> AppendIter<'a, T>
where String: From<&'a U>,

Append a row or column along the specified UtahAxis.

Source§

fn inner_left_join(&'a self, other: &'a DataFrame<T>) -> InnerJoinIter<'a, T>

Perform an inner left join between two dataframes along the specified UtahAxis.

Source§

fn outer_left_join(&'a self, other: &'a DataFrame<T>) -> OuterJoinIter<'a, T>

Perform an outer left join between two dataframes along the specified UtahAxis.

Source§

fn inner_right_join(&'a self, other: &'a DataFrame<T>) -> InnerJoinIter<'a, T>

Perform an inner right join between two dataframes along the specified UtahAxis.

Source§

fn outer_right_join(&'a self, other: &'a DataFrame<T>) -> OuterJoinIter<'a, T>

Perform an outer right join between two dataframes along the specified UtahAxis.

Source§

fn sumdf(&'a mut self, axis: UtahAxis) -> SumIter<'a, T>

Sum along the specified UtahAxis.

Source§

fn mapdf<F>(&'a mut self, f: F, axis: UtahAxis) -> MapDFIter<'a, T, F>
where F: Fn(T) -> T,

Map a function along the specified UtahAxis.

Source§

fn mean(&'a mut self, axis: UtahAxis) -> MeanIter<'a, T>

Get the average of entries along the specified UtahAxis.

Source§

fn maxdf(&'a mut self, axis: UtahAxis) -> MaxIter<'a, T>

Get the maximum of entries along the specified UtahAxis.

Source§

fn mindf(&'a mut self, axis: UtahAxis) -> MinIter<'a, T>

Get the minimum of entries along the specified UtahAxis.

Source§

fn impute( &'a mut self, strategy: ImputeStrategy, axis: UtahAxis, ) -> ImputeIter<'a, T>

Replace empty values with specified ImputeStrategy along the specified UtahAxis.

Source§

fn concat( &'a self, other: &'a DataFrame<T>, axis: UtahAxis, ) -> ConcatIter<'a, T>

Source§

impl<T> PartialEq for DataFrame<T>
where T: UtahNum + PartialEq,

Source§

fn eq(&self, other: &DataFrame<T>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<T> ReadCSV<T> for DataFrame<T>
where T: UtahNum + Decodable + FromStr + Debug,

Source§

fn read_csv(file: &'static str) -> Result<DataFrame<T>>

Source§

impl<T> StructuralPartialEq for DataFrame<T>
where T: UtahNum,

Auto Trait Implementations§

§

impl<T> Freeze for DataFrame<T>

§

impl<T> RefUnwindSafe for DataFrame<T>
where T: RefUnwindSafe,

§

impl<T> Send for DataFrame<T>
where T: Send,

§

impl<T> Sync for DataFrame<T>
where T: Sync,

§

impl<T> Unpin for DataFrame<T>

§

impl<T> UnsafeUnpin for DataFrame<T>

§

impl<T> UnwindSafe for DataFrame<T>
where T: RefUnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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 more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.