pub trait ChunkSet<'a, A, B> {
    // Required methods
    fn set_at_idx<I: IntoIterator<Item = IdxSize>>(
        &'a self,
        idx: I,
        opt_value: Option<A>
    ) -> PolarsResult<Self>
       where Self: Sized;
    fn set_at_idx_with<I: IntoIterator<Item = IdxSize>, F>(
        &'a self,
        idx: I,
        f: F
    ) -> PolarsResult<Self>
       where Self: Sized,
             F: Fn(Option<A>) -> Option<B>;
    fn set(
        &'a self,
        mask: &BooleanChunked,
        opt_value: Option<A>
    ) -> PolarsResult<Self>
       where Self: Sized;
}
Expand description

Create a ChunkedArray with new values by index or by boolean mask. Note that these operations clone data. This is however the only way we can modify at mask or index level as the underlying Arrow arrays are immutable.

Required Methods§

source

fn set_at_idx<I: IntoIterator<Item = IdxSize>>( &'a self, idx: I, opt_value: Option<A> ) -> PolarsResult<Self>where Self: Sized,

Set the values at indexes idx to some optional value Option<T>.

Example
let ca = UInt32Chunked::new("a", &[1, 2, 3]);
let new = ca.set_at_idx(vec![0, 1], Some(10)).unwrap();

assert_eq!(Vec::from(&new), &[Some(10), Some(10), Some(3)]);
source

fn set_at_idx_with<I: IntoIterator<Item = IdxSize>, F>( &'a self, idx: I, f: F ) -> PolarsResult<Self>where Self: Sized, F: Fn(Option<A>) -> Option<B>,

Set the values at indexes idx by applying a closure to these values.

Example
let ca = Int32Chunked::new("a", &[1, 2, 3]);
let new = ca.set_at_idx_with(vec![0, 1], |opt_v| opt_v.map(|v| v - 5)).unwrap();

assert_eq!(Vec::from(&new), &[Some(-4), Some(-3), Some(3)]);
source

fn set( &'a self, mask: &BooleanChunked, opt_value: Option<A> ) -> PolarsResult<Self>where Self: Sized,

Set the values where the mask evaluates to true to some optional value Option<T>.

Example
let ca = Int32Chunked::new("a", &[1, 2, 3]);
let mask = BooleanChunked::new("mask", &[false, true, false]);
let new = ca.set(&mask, Some(5)).unwrap();
assert_eq!(Vec::from(&new), &[Some(1), Some(5), Some(3)]);

Implementors§

source§

impl<'a> ChunkSet<'a, &'a str, String> for Utf8Chunked

source§

impl<'a> ChunkSet<'a, &'a [u8], Vec<u8>> for BinaryChunked

source§

impl<'a> ChunkSet<'a, bool, bool> for BooleanChunked

source§

impl<'a, T> ChunkSet<'a, <T as PolarsNumericType>::Native, <T as PolarsNumericType>::Native> for ChunkedArray<T>where T: PolarsNumericType,