def from_struct_column(self, closed="right"): return IntervalColumn( size=self.size, dtype=IntervalDtype(self.dtype.fields["left"], closed), mask=self.base_mask, offset=self.offset, null_count=self.null_count, children=self.base_children, closed=closed, )
def from_struct_column(self, closed="right"): first_field_name = list(self.dtype.fields.keys())[0] return IntervalColumn( size=self.size, dtype=IntervalDtype(self.dtype.fields[first_field_name], closed), mask=self.base_mask, offset=self.offset, null_count=self.null_count, children=self.base_children, closed=closed, )
def copy(self, deep=True): closed = self.closed struct_copy = super().copy(deep=deep) return IntervalColumn( size=struct_copy.size, dtype=IntervalDtype(struct_copy.dtype.fields["left"], closed), mask=struct_copy.base_mask, offset=struct_copy.offset, null_count=struct_copy.null_count, children=struct_copy.base_children, closed=closed, )
def as_interval_column(self, dtype, **kwargs): if is_interval_dtype(dtype): # a user can directly input the string `interval` as the dtype # when creating an interval series or interval dataframe if dtype == "interval": dtype = IntervalDtype(self.dtype.fields["left"], self.closed) return IntervalColumn( size=self.size, dtype=dtype, mask=self.mask, offset=self.offset, null_count=self.null_count, children=self.children, closed=dtype.closed, ) else: raise ValueError("dtype must be IntervalDtype")
def from_arrow(self, data): new_col = super().from_arrow(data.storage) size = len(data) dtype = IntervalDtype.from_arrow(data.type) mask = data.buffers()[0] if mask is not None: mask = cudf.utils.utils.pa_mask_buffer_to_mask(mask, len(data)) offset = data.offset null_count = data.null_count children = new_col.children closed = dtype.closed return IntervalColumn( size=size, dtype=dtype, mask=mask, offset=offset, null_count=null_count, children=children, closed=closed, )
def test_interval_dtype_pyarrow_round_trip(fields, closed): pa_array = pd.core.arrays._arrow_utils.ArrowIntervalType(fields, closed) expect = pa_array got = IntervalDtype.from_arrow(expect).to_arrow() assert expect.equals(got)