Struct polars::series::Series[][src]

pub struct Series(pub Arc<dyn SeriesTrait + 'static>);

Series

The columnar data type for a DataFrame. The Series enum consists of typed ChunkedArray’s. To quickly cast a Series to a ChunkedArray you can call the method with the name of the type:

let s: Series = [1, 2, 3].iter().collect();
// Quickly obtain the ChunkedArray wrapped by the Series.
let chunked_array = s.i32().unwrap();

Arithmetic

You can do standard arithmetic on series.

let s: Series = [1, 2, 3].iter().collect();
let out_add = &s + &s;
let out_sub = &s - &s;
let out_div = &s / &s;
let out_mul = &s * &s;

Or with series and numbers.

let s: Series = (1..3).collect();
let out_add_one = &s + 1;
let out_multiply = &s * 10;

// Could not overload left hand side operator.
let out_divide = 1.div(&s);
let out_add = 1.add(&s);
let out_subtract = 1.sub(&s);
let out_multiply = 1.mul(&s);

Comparison

You can obtain boolean mask by comparing series.

use itertools::Itertools;
let s = Series::new("dollars", &[1, 2, 3]);
let mask = s.eq(1);
let valid = [true, false, false].iter();
assert!(mask
    .into_iter()
    .map(|opt_bool| opt_bool.unwrap()) // option, because series can be null
    .zip(valid)
    .all(|(a, b)| a == *b))

See all the comparison operators in the CmpOps trait

Iterators

The Series variants contain differently typed ChunkedArray’s. These structs can be turned into iterators, making it possible to use any function/ closure you want on a Series.

These iterators return an Option<T> because the values of a series may be null.

use polars_core::prelude::*;
let pi = 3.14;
let s = Series::new("angle", [2f32 * pi, pi, 1.5 * pi].as_ref());
let s_cos: Series = s.f32()
                    .expect("series was not an f32 dtype")
                    .into_iter()
                    .map(|opt_angle| opt_angle.map(|angle| angle.cos()))
                    .collect();

Creation

Series can be create from different data structures. Below we’ll show a few ways we can create a Series object.

// Series van be created from Vec's, slices and arrays
Series::new("boolean series", &vec![true, false, true]);
Series::new("int series", &[1, 2, 3]);
// And can be nullable
Series::new("got nulls", &[Some(1), None, Some(2)]);

// Series can also be collected from iterators
let from_iter: Series = (0..10)
    .into_iter()
    .collect();

Implementations

impl Series[src]

pub fn rename(&mut self, name: &str) -> &mut Series[src]

Rename series.

pub fn append_array(
    &mut self,
    other: Arc<dyn Array + 'static>
) -> Result<&mut Series, PolarsError>
[src]

Append arrow array of same datatype.

pub fn append(&mut self, other: &Series) -> Result<&mut Series, PolarsError>[src]

Append a Series of the same type in place.

pub fn sort_in_place(&mut self, reverse: bool) -> &mut Series[src]

Sort in place.

pub fn as_single_ptr(&mut self) -> Result<usize, PolarsError>[src]

Rechunk and return a pointer to the start of the Series. Only implemented for numeric types

pub fn cast<N>(&self) -> Result<Series, PolarsError> where
    N: PolarsDataType
[src]

Cast to some primitive type.

pub fn sum<T>(&self) -> Option<T> where
    T: NumCast
[src]

Returns None if the array is empty or only contains null values.

let s = Series::new("days", [1, 2, 3].as_ref());
assert_eq!(s.sum(), Some(6));

pub fn min<T>(&self) -> Option<T> where
    T: NumCast
[src]

Returns the minimum value in the array, according to the natural order. Returns an option because the array is nullable.

let s = Series::new("days", [1, 2, 3].as_ref());
assert_eq!(s.min(), Some(1));

pub fn max<T>(&self) -> Option<T> where
    T: NumCast
[src]

Returns the maximum value in the array, according to the natural order. Returns an option because the array is nullable.

let s = Series::new("days", [1, 2, 3].as_ref());
assert_eq!(s.max(), Some(3));

pub fn explode(&self) -> Result<Series, PolarsError>[src]

Explode a list or utf8 Series. This expands every item to a new row..

pub fn is_nan(&self) -> Result<ChunkedArray<BooleanType>, PolarsError>[src]

Check if float value is NaN (note this is different than missing/ null)

pub fn is_not_nan(&self) -> Result<ChunkedArray<BooleanType>, PolarsError>[src]

Check if float value is NaN (note this is different than missing/ null)

pub fn is_finite(&self) -> Result<ChunkedArray<BooleanType>, PolarsError>[src]

Check if float value is finite

pub fn is_infinite(&self) -> Result<ChunkedArray<BooleanType>, PolarsError>[src]

Check if float value is finite

pub fn zip_with(
    &self,
    mask: &ChunkedArray<BooleanType>,
    other: &Series
) -> Result<Series, PolarsError>
[src]

Create a new ChunkedArray with values from self where the mask evaluates true and values from other where the mask evaluates false

pub fn is_in(
    &self,
    list_array: &ChunkedArray<ListType>
) -> Result<ChunkedArray<BooleanType>, PolarsError>
[src]

Check if values of this array are in the Series of the list array.

pub fn to_physical_repr(&self) -> Series[src]

Cast a datelike Series to their physical representation. Primitives remain unchanged

  • Date32 -> Int32
  • Date64 -> Int64
  • Time64 -> Int64
  • Duration -> Int64

impl Series[src]

pub fn series_equal(&self, other: &Series) -> bool[src]

Check if series are equal. Note that None == None evaluates to false

pub fn series_equal_missing(&self, other: &Series) -> bool[src]

Check if all values in series are equal where None == None evaluates to true.

pub fn get_data_ptr(&self) -> usize[src]

Get a pointer to the underlying data of this Series. Can be useful for fast comparisons.

impl Series[src]

Methods from Deref<Target = dyn SeriesTrait + 'static>

pub fn unpack<N>(&self) -> Result<&ChunkedArray<N>, PolarsError> where
    N: 'static + PolarsDataType
[src]

Trait Implementations

impl<'_> Add<&'_ Series> for DataFrame[src]

type Output = Result<DataFrame, PolarsError>

The resulting type after applying the + operator.

impl<'_> Add<&'_ Series> for &'_ Series[src]

type Output = Series

The resulting type after applying the + operator.

impl<'_, '_> Add<&'_ Series> for &'_ DataFrame[src]

type Output = Result<DataFrame, PolarsError>

The resulting type after applying the + operator.

impl<T> Add<T> for Series where
    T: Num + NumCast
[src]

type Output = Series

The resulting type after applying the + operator.

impl<'_, T> Add<T> for &'_ Series where
    T: Num + NumCast
[src]

type Output = Series

The resulting type after applying the + operator.

impl<'a> AsRef<dyn SeriesTrait + 'a> for Series[src]

impl ChunkAgg<Series> for ChunkedArray<ListType>[src]

impl<'a> ChunkApply<'a, Series, Series> for ChunkedArray<ListType>[src]

pub fn apply<F>(&'a self, f: F) -> ChunkedArray<ListType> where
    F: Fn(Series) -> Series + Copy
[src]

Apply a closure F elementwise.

pub fn apply_with_idx<F>(&'a self, f: F) -> ChunkedArray<ListType> where
    F: Fn((usize, Series)) -> Series + Copy
[src]

Apply a closure elementwise. The closure gets the index of the element as first argument.

pub fn apply_with_idx_on_opt<F>(&'a self, f: F) -> ChunkedArray<ListType> where
    F: Fn((usize, Option<Series>)) -> Option<Series> + Copy
[src]

Apply a closure elementwise. The closure gets the index of the element as first argument.

impl<'_> ChunkCompare<&'_ Series> for Series[src]

pub fn eq(&self, rhs: &Series) -> ChunkedArray<BooleanType>[src]

Create a boolean mask by checking for equality.

pub fn neq(&self, rhs: &Series) -> ChunkedArray<BooleanType>[src]

Create a boolean mask by checking for inequality.

pub fn gt(&self, rhs: &Series) -> ChunkedArray<BooleanType>[src]

Create a boolean mask by checking if lhs > rhs.

pub fn gt_eq(&self, rhs: &Series) -> ChunkedArray<BooleanType>[src]

Create a boolean mask by checking if lhs >= rhs.

pub fn lt(&self, rhs: &Series) -> ChunkedArray<BooleanType>[src]

Create a boolean mask by checking if lhs < rhs.

pub fn lt_eq(&self, rhs: &Series) -> ChunkedArray<BooleanType>[src]

Create a boolean mask by checking if lhs <= rhs.

impl<'_> ChunkCompare<&'_ str> for Series[src]

impl<Rhs> ChunkCompare<Rhs> for Series where
    Rhs: NumComp
[src]

impl<'_> ChunkFillNoneValue<&'_ Series> for ChunkedArray<ListType>[src]

impl<'_> ChunkFull<&'_ Series> for ChunkedArray<ListType>[src]

impl<T> ChunkVar<Series> for ChunkedArray<ObjectType<T>>[src]

impl ChunkVar<Series> for ChunkedArray<ListType>[src]

impl Clone for Series[src]

impl Debug for Series[src]

impl Default for Series[src]

impl Deref for Series[src]

type Target = dyn SeriesTrait + 'static

The resulting type after dereferencing.

impl Display for Series[src]

impl<'_, '_> Div<&'_ Series> for &'_ DataFrame[src]

type Output = Result<DataFrame, PolarsError>

The resulting type after applying the / operator.

impl<'_> Div<&'_ Series> for DataFrame[src]

type Output = Result<DataFrame, PolarsError>

The resulting type after applying the / operator.

impl<'_> Div<&'_ Series> for &'_ Series[src]

type Output = Series

The resulting type after applying the / operator.

pub fn div(self, rhs: &'_ Series) -> <&'_ Series as Div<&'_ Series>>::Output[src]

let s: Series = [1, 2, 3].iter().collect();
let out = &s / &s;

impl<T> Div<T> for Series where
    T: Num + NumCast
[src]

type Output = Series

The resulting type after applying the / operator.

impl<'_, T> Div<T> for &'_ Series where
    T: Num + NumCast
[src]

type Output = Series

The resulting type after applying the / operator.

impl<T> From<ChunkedArray<T>> for Series where
    T: PolarsDataType,
    ChunkedArray<T>: IntoSeries
[src]

impl<'a> FromIterator<&'a bool> for Series[src]

impl<'a> FromIterator<&'a f32> for Series[src]

impl<'a> FromIterator<&'a f64> for Series[src]

impl<'a> FromIterator<&'a i16> for Series[src]

impl<'a> FromIterator<&'a i32> for Series[src]

impl<'a> FromIterator<&'a i64> for Series[src]

impl<'a> FromIterator<&'a i8> for Series[src]

impl<'a> FromIterator<&'a str> for Series[src]

impl<'a> FromIterator<&'a u16> for Series[src]

impl<'a> FromIterator<&'a u32> for Series[src]

impl<'a> FromIterator<&'a u64> for Series[src]

impl<'a> FromIterator<&'a u8> for Series[src]

impl FromIterator<Option<bool>> for Series[src]

impl FromIterator<Option<f32>> for Series[src]

impl FromIterator<Option<f64>> for Series[src]

impl FromIterator<Option<i16>> for Series[src]

impl FromIterator<Option<i32>> for Series[src]

impl FromIterator<Option<i64>> for Series[src]

impl FromIterator<Option<i8>> for Series[src]

impl FromIterator<Option<u16>> for Series[src]

impl FromIterator<Option<u32>> for Series[src]

impl FromIterator<Option<u64>> for Series[src]

impl FromIterator<Option<u8>> for Series[src]

impl FromIterator<Series> for DataFrame[src]

pub fn from_iter<T>(iter: T) -> DataFrame where
    T: IntoIterator<Item = Series>, 
[src]

Panics

Panics if Series have different lengths.

impl FromIterator<bool> for Series[src]

impl FromIterator<f32> for Series[src]

impl FromIterator<f64> for Series[src]

impl FromIterator<i16> for Series[src]

impl FromIterator<i32> for Series[src]

impl FromIterator<i64> for Series[src]

impl FromIterator<i8> for Series[src]

impl FromIterator<u16> for Series[src]

impl FromIterator<u32> for Series[src]

impl FromIterator<u64> for Series[src]

impl FromIterator<u8> for Series[src]

impl IntoSeries for Series[src]

impl Literal for Series[src]

impl<'_> Mul<&'_ Series> for &'_ Series[src]

type Output = Series

The resulting type after applying the * operator.

pub fn mul(self, rhs: &'_ Series) -> <&'_ Series as Mul<&'_ Series>>::Output[src]

let s: Series = [1, 2, 3].iter().collect();
let out = &s * &s;

impl<'_, '_> Mul<&'_ Series> for &'_ DataFrame[src]

type Output = Result<DataFrame, PolarsError>

The resulting type after applying the * operator.

impl<'_> Mul<&'_ Series> for DataFrame[src]

type Output = Result<DataFrame, PolarsError>

The resulting type after applying the * operator.

impl<'_, T> Mul<T> for &'_ Series where
    T: Num + NumCast
[src]

type Output = Series

The resulting type after applying the * operator.

impl<T> Mul<T> for Series where
    T: Num + NumCast
[src]

type Output = Series

The resulting type after applying the * operator.

impl<'a, T> NamedFrom<T, [&'a str]> for Series where
    T: AsRef<[&'a str]>, 
[src]

impl<'a, T> NamedFrom<T, [Option<&'a str>]> for Series where
    T: AsRef<[Option<&'a str>]>, 
[src]

impl<T> NamedFrom<T, [Option<String>]> for Series where
    T: AsRef<[Option<String>]>, 
[src]

impl<T> NamedFrom<T, [Option<bool>]> for Series where
    T: AsRef<[Option<bool>]>, 
[src]

impl<T> NamedFrom<T, [Option<f32>]> for Series where
    T: AsRef<[Option<f32>]>, 
[src]

impl<T> NamedFrom<T, [Option<f64>]> for Series where
    T: AsRef<[Option<f64>]>, 
[src]

impl<T> NamedFrom<T, [Option<i16>]> for Series where
    T: AsRef<[Option<i16>]>, 
[src]

impl<T> NamedFrom<T, [Option<i32>]> for Series where
    T: AsRef<[Option<i32>]>, 
[src]

impl<T> NamedFrom<T, [Option<i64>]> for Series where
    T: AsRef<[Option<i64>]>, 
[src]

impl<T> NamedFrom<T, [Option<i8>]> for Series where
    T: AsRef<[Option<i8>]>, 
[src]

impl<T> NamedFrom<T, [Option<u16>]> for Series where
    T: AsRef<[Option<u16>]>, 
[src]

impl<T> NamedFrom<T, [Option<u32>]> for Series where
    T: AsRef<[Option<u32>]>, 
[src]

impl<T> NamedFrom<T, [Option<u64>]> for Series where
    T: AsRef<[Option<u64>]>, 
[src]

impl<T> NamedFrom<T, [Option<u8>]> for Series where
    T: AsRef<[Option<u8>]>, 
[src]

impl<T> NamedFrom<T, [String]> for Series where
    T: AsRef<[String]>, 
[src]

impl<T> NamedFrom<T, [bool]> for Series where
    T: AsRef<[bool]>, 
[src]

impl<T> NamedFrom<T, [f32]> for Series where
    T: AsRef<[f32]>, 
[src]

impl<T> NamedFrom<T, [f64]> for Series where
    T: AsRef<[f64]>, 
[src]

impl<T> NamedFrom<T, [i16]> for Series where
    T: AsRef<[i16]>, 
[src]

impl<T> NamedFrom<T, [i32]> for Series where
    T: AsRef<[i32]>, 
[src]

impl<T> NamedFrom<T, [i64]> for Series where
    T: AsRef<[i64]>, 
[src]

impl<T> NamedFrom<T, [i8]> for Series where
    T: AsRef<[i8]>, 
[src]

impl<T> NamedFrom<T, [u16]> for Series where
    T: AsRef<[u16]>, 
[src]

impl<T> NamedFrom<T, [u32]> for Series where
    T: AsRef<[u32]>, 
[src]

impl<T> NamedFrom<T, [u64]> for Series where
    T: AsRef<[u64]>, 
[src]

impl<T> NamedFrom<T, [u8]> for Series where
    T: AsRef<[u8]>, 
[src]

impl<T> NamedFrom<T, ListType> for Series where
    T: AsRef<[Series]>, 
[src]

impl<'_> Rem<&'_ Series> for DataFrame[src]

type Output = Result<DataFrame, PolarsError>

The resulting type after applying the % operator.

impl<'_> Rem<&'_ Series> for &'_ Series[src]

type Output = Series

The resulting type after applying the % operator.

pub fn rem(self, rhs: &'_ Series) -> <&'_ Series as Rem<&'_ Series>>::Output[src]

let s: Series = [1, 2, 3].iter().collect();
let out = &s / &s;

impl<'_, '_> Rem<&'_ Series> for &'_ DataFrame[src]

type Output = Result<DataFrame, PolarsError>

The resulting type after applying the % operator.

impl<T> Rem<T> for Series where
    T: Num + NumCast
[src]

type Output = Series

The resulting type after applying the % operator.

impl<'_, T> Rem<T> for &'_ Series where
    T: Num + NumCast
[src]

type Output = Series

The resulting type after applying the % operator.

impl<'_> Sub<&'_ Series> for &'_ Series[src]

type Output = Series

The resulting type after applying the - operator.

impl<'_> Sub<&'_ Series> for DataFrame[src]

type Output = Result<DataFrame, PolarsError>

The resulting type after applying the - operator.

impl<'_, '_> Sub<&'_ Series> for &'_ DataFrame[src]

type Output = Result<DataFrame, PolarsError>

The resulting type after applying the - operator.

impl<T> Sub<T> for Series where
    T: Num + NumCast
[src]

type Output = Series

The resulting type after applying the - operator.

impl<'_, T> Sub<T> for &'_ Series where
    T: Num + NumCast
[src]

type Output = Series

The resulting type after applying the - operator.

impl<'_> TryFrom<(&'_ str, Arc<dyn Array + 'static>)> for Series[src]

type Error = PolarsError

The type returned in the event of a conversion error.

impl<'_> TryFrom<(&'_ str, Vec<Arc<dyn Array + 'static>, Global>)> for Series[src]

type Error = PolarsError

The type returned in the event of a conversion error.

Auto Trait Implementations

impl !RefUnwindSafe for Series

impl Send for Series

impl Sync for Series

impl Unpin for Series

impl !UnwindSafe for Series

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T, U> Cast<U> for T where
    U: FromCast<T>, 

impl<T> From<T> for T[src]

impl<T> FromCast<T> for T

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, Rhs, Output> NumOps<Rhs, Output> for T where
    T: Sub<Rhs, Output = Output> + Mul<Rhs, Output = Output> + Div<Rhs, Output = Output> + Add<Rhs, Output = Output> + Rem<Rhs, Output = Output>, 
[src]

impl<T> Pointable for T

type Init = T

The type for initializers.

impl<T> ToCell for T where
    T: ToString

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,