Struct polars_core::chunked_array::builder::BooleanChunkedBuilder
source · pub struct BooleanChunkedBuilder { /* private fields */ }Implementations§
source§impl BooleanChunkedBuilder
impl BooleanChunkedBuilder
sourcepub fn new(name: &str, capacity: usize) -> Self
pub fn new(name: &str, capacity: usize) -> Self
Examples found in repository?
More examples
src/chunked_array/random.rs (line 258)
252 253 254 255 256 257 258 259 260 261 262 263 264
pub fn rand_bernoulli(name: &str, length: usize, p: f64) -> PolarsResult<Self> {
let dist = match Bernoulli::new(p) {
Ok(dist) => dist,
Err(e) => return Err(PolarsError::ComputeError(format!("{e:?}").into())),
};
let mut rng = rand::thread_rng();
let mut builder = BooleanChunkedBuilder::new(name, length);
for _ in 0..length {
let smpl = dist.sample(&mut rng);
builder.append_value(smpl)
}
Ok(builder.finish())
}src/chunked_array/ops/explode.rs (line 174)
169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206
fn explode_by_offsets(&self, offsets: &[i64]) -> Series {
debug_assert_eq!(self.chunks.len(), 1);
let arr = self.downcast_iter().next().unwrap();
let cap = ((arr.len() as f32) * 1.5) as usize;
let mut builder = BooleanChunkedBuilder::new(self.name(), cap);
let mut start = offsets[0] as usize;
let mut last = start;
for &o in &offsets[1..] {
let o = o as usize;
if o == last {
if start != last {
let vals = arr.slice(start, last - start);
if vals.null_count() == 0 {
builder
.array_builder
.extend_trusted_len_values(vals.values_iter())
} else {
builder.array_builder.extend_trusted_len(vals.into_iter());
}
}
builder.append_null();
start = o;
}
last = o;
}
let vals = arr.slice(start, last - start);
if vals.null_count() == 0 {
builder
.array_builder
.extend_trusted_len_values(vals.values_iter())
} else {
builder.array_builder.extend_trusted_len(vals.into_iter());
}
builder.finish().into()
}src/frame/row.rs (line 516)
512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537
fn from(a: (&DataType, usize)) -> Self {
let (dt, len) = a;
use DataType::*;
match dt {
Boolean => AnyValueBuffer::Boolean(BooleanChunkedBuilder::new("", len)),
Int32 => AnyValueBuffer::Int32(PrimitiveChunkedBuilder::new("", len)),
Int64 => AnyValueBuffer::Int64(PrimitiveChunkedBuilder::new("", len)),
UInt32 => AnyValueBuffer::UInt32(PrimitiveChunkedBuilder::new("", len)),
UInt64 => AnyValueBuffer::UInt64(PrimitiveChunkedBuilder::new("", len)),
#[cfg(feature = "dtype-date")]
Date => AnyValueBuffer::Date(PrimitiveChunkedBuilder::new("", len)),
#[cfg(feature = "dtype-datetime")]
Datetime(tu, tz) => {
AnyValueBuffer::Datetime(PrimitiveChunkedBuilder::new("", len), *tu, tz.clone())
}
#[cfg(feature = "dtype-duration")]
Duration(tu) => AnyValueBuffer::Duration(PrimitiveChunkedBuilder::new("", len), *tu),
#[cfg(feature = "dtype-time")]
Time => AnyValueBuffer::Time(PrimitiveChunkedBuilder::new("", len)),
Float32 => AnyValueBuffer::Float32(PrimitiveChunkedBuilder::new("", len)),
Float64 => AnyValueBuffer::Float64(PrimitiveChunkedBuilder::new("", len)),
Utf8 => AnyValueBuffer::Utf8(Utf8ChunkedBuilder::new("", len, len * 5)),
// Struct and List can be recursive so use anyvalues for that
dt => AnyValueBuffer::All(dt.clone(), Vec::with_capacity(len)),
}
}Trait Implementations§
source§impl ChunkedBuilder<bool, BooleanType> for BooleanChunkedBuilder
impl ChunkedBuilder<bool, BooleanType> for BooleanChunkedBuilder
source§fn append_value(&mut self, v: bool)
fn append_value(&mut self, v: bool)
Appends a value of type T into the builder
source§fn append_null(&mut self)
fn append_null(&mut self)
Appends a null slot into the builder