trs_dataframe::dataframe::colums_store

Struct ColumnFrame

Source
pub struct ColumnFrame { /* private fields */ }
Expand description

ColumnFrame is used to store the data for the candidates The data is stored in the Array2 with the DataValue values The data is stored in the columns and the columns are indexed by the KeyIndex The KeyIndex is used to access the data by the column Key Memory layout is same like in ndarray - the data is stored in the row-major order

Implementations§

Source§

impl ColumnFrame

Source

pub fn new(index: KeyIndex, data_frame: Array2<DataValue>) -> Self

Source

pub fn keys(&self) -> &[Key]

Source

pub fn len(&self) -> usize

Source

pub fn is_empty(&self) -> bool

Source

pub fn shrink(&mut self)

Source

pub fn select_transposed_typed<D: Extract>(&self, keys: &[Key]) -> Vec<Vec<D>>

Selects the data from the ColumnFrame by the given keys If the keys are not provided, the data is selected by the KeyIndex keys The data is returned as the Vec<Vec<DataValue>> If the keys are not found, the empty Vec<Vec<DataValue>> is returned Returns the data in the column-major order

Source

pub fn select_transposed( &self, keys: Option<&[Key]>, ) -> Result<Array2<DataValue>, Error>

Selects the data from the ColumnFrame by the given keys If the keys are not provided, the data is selected by the KeyIndex keys The data is returned as the Array2 with the DataValue values If the keys are not found, the empty Array2 is returned Returns the Array2 with the data in the column-major order

Source

pub fn select_column(&self, key: &Key) -> Option<ArrayView1<'_, DataValue>>

Selects whole column from the ColumnFrame by the given key If the key is not found, the None is returned If the key is found, the ArrayView1 with the DataValue values is returned

Source

pub fn apply_function<F>(&mut self, keys: &[Key], func: F) -> Result<(), Error>
where F: FnMut(&[Key], &mut ColumnFrame) -> Result<(), Error>,

Source

pub fn validate_entry_access( &self, column: &Key, row_index: usize, ) -> Result<usize, Error>

Validates the access to the entry by the given column Key and row index If the column is not found, an error is returned Error::NotFound If the row index is out of bounds, an error is returned Error::IndexOutOfRange Otherwise, the column index is returned

Source

pub fn get_by_row_index( &self, column: &Key, row_index: usize, ) -> Option<&DataValue>

Returns the value DataValue for the given column defined by Key and row index If the column is not found, None is returned If the row index is out of bounds, None is returned

Source

pub fn select(&self, keys: Option<&[Key]>) -> Array2<DataValue>

Returns the value Array2<DataValue> for the given columns defined by Key. If the keys are not provided, the data is selected by the KeyIndex keys If the keys are not found, the empty Array2 is returned Returns the Array2 with the data in the row-major order

Source

pub fn push<C: CandidateData>(&mut self, row_candidate: C) -> Result<(), Error>

Pushes the row candidate into the ColumnFrame If the column is not found this method will add the column to the ColumnFrame

Source

pub fn remove_column(&mut self, keys: &[Key]) -> Result<Self, Error>

Source

pub fn extend(&mut self, other: Self) -> Result<(), Error>

Extends the ColumnFrame with the data from the other ColumnFrame If the KeyIndex is empty, the ColumnFrame is replaced with the other ColumnFrame If the other KeyIndex is empty, nothing happens If the length of the KeyIndex of the other data frame is greater then current, an error is returned Error::DataSetSizeDoesntMatch If Key from other data frame - extends the KeyIndex and add column to the current ColumnFrame

Source

pub fn replace(&mut self, other: Self) -> Result<(), Error>

Replace the ColumnFrame with the other ColumnFrame If the current KeyIndex is empty, the ColumnFrame is replaced with the other ColumnFrame If the other KeyIndex is empty, nothing happens If the KeyIndex of the other data frame and current doesn’t match an error is returned Error::DataSetSizeDoesntMatch If the Key from other data frame is not present in the current ColumnFrame - extends the KeyIndex and add column to the current ColumnFrame

Source

pub fn join_by_id_inner( &mut self, right: Self, keys: &[Key], ) -> Result<(), Error>

Joins the candidates by the keys in the JoinRelation::JoinById struct. This function creates Index for the keys and then joins the candidates by the keys.

Source

pub fn add_single_column<K: Into<Key>>( &mut self, key: K, column: Array1<DataValue>, ) -> Result<(), Error>

Adds the single column to the current ColumnFrame If the column is already present, an error is returned Error::ColumnAlreadyExists If the length of the column is different from the current data frame, an error is returned Error::DataSetSizeDoesntMatch

Source

pub fn add_columns(&mut self, other: Self) -> Result<(), Error>

Adds the columns from the other ColumnFrame to the current ColumnFrame If the current KeyIndex is empty, the ColumnFrame is replaced with the other ColumnFrame If the other KeyIndex is empty, nothing happens

Source

pub fn broadcast(&mut self, other: Self) -> Result<(), Error>

Broadcasts the data from the other ColumnFrame to the current ColumnFrame If the current KeyIndex is empty, the ColumnFrame is replaced with the other ColumnFrame If the other KeyIndex is empty, nothing happens If the length (number of rows) of the other data frame is greater then 1 an error is returned Error::CannotBroadcast

Source

pub fn cartesian_product(&mut self, other: Self) -> Result<(), Error>

Computes the Cartesian product of the input structures, resulting in all possible combinations of elements. The data is stored in the row-major order The keys are stored in the order they are added - the order is preserved - new keys from the other ColumnFrame are added to the end

Source

pub fn join( &mut self, right: Self, join_type: &JoinRelation, ) -> Result<(), Error>

Joins the candidates with the other candidates by the JoinRelation policy. For JoinBy::AddColumns the columns are added to the existing structure via Self::add_columns For JoinBy::Replace the columns are replaced with the new columns For JoinBy::Extend the candidates are extended via Self::extend For JoinBy::Broadcast each candidate is extended with the values of the other candidates Self::broadcast For JoinBy::CartesianProduct the candidates are multiplied by the other candidates For JoinBy::JoinById the candidates are joined by the keys in the JoinRelation::JoinById struct see Self::join_by_id_inner

Source

pub fn get_single_column(&self, key: &Key) -> Option<ArrayView1<'_, DataValue>>

Trait Implementations§

Source§

impl Clone for ColumnFrame

Source§

fn clone(&self) -> ColumnFrame

Returns a copy 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 Debug for ColumnFrame

Source§

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

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

impl Default for ColumnFrame

Source§

fn default() -> ColumnFrame

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for ColumnFrame

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Display for ColumnFrame

Source§

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

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

impl From<ColumnFrame> for DataFrame

Source§

fn from(dataframe: ColumnFrame) -> Self

Converts to this type from the input type.
Source§

impl From<HashMap<String, Vec<DataValue>>> for ColumnFrame

NOTE: Because of randomnes of the key order in the hashmap, the order of the keys are sorted!

Source§

fn from(dataframe: HashMap<String, Vec<DataValue>>) -> Self

Converts to this type from the input type.
Source§

impl From<SizedHashMap<SmartString<LazyCompact>, Vec<DataValue>>> for ColumnFrame

Source§

fn from(dataframe: MLChefMap) -> Self

Converts to this type from the input type.
Source§

impl From<Vec<(Key, Vec<DataValue>)>> for ColumnFrame

Source§

fn from(dataframe: Vec<(Key, Vec<DataValue>)>) -> Self

Converts to this type from the input type.
Source§

impl From<Vec<HashMap<Key, DataValue>>> for ColumnFrame

NOTE: Because of randomnes of the key order in the hashmap, the order of the keys are sorted!

Source§

fn from(dataframe: Vec<HashMap<Key, DataValue>>) -> Self

Converts to this type from the input type.
Source§

impl From<Vec<SizedHashMap<Key, DataValue>>> for ColumnFrame

NOTE: Because of randomnes of the key order in the hashmap, the order of the keys are sorted!

Source§

fn from(dataframe: Vec<HashMap<Key, DataValue>>) -> Self

Converts to this type from the input type.
Source§

impl PartialEq for ColumnFrame

Source§

fn eq(&self, other: &ColumnFrame) -> 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 Serialize for ColumnFrame

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for ColumnFrame

Auto Trait Implementations§

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, dst: *mut u8)

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

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> 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> ToString for T
where T: Display + ?Sized,

Source§

default fn to_string(&self) -> String

Converts the given value to a String. 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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,